Ghi link ngắn gọn trong Ajax 2007-07-12 12:06:45
Thông thường khi sử dụng ajax chúng ta hay đặt link dạng:
<a href="#" onclick="ajaxLoad(url,id)">Click</a>
hoăc <a href="javascript:ajaxLoad(url,id)">Click</a>
Với cách này nếu trên 1 site có nhiều link thì sẽ làm tăng dung lượng file .html rất nhiều, TG dùng cách khác để ghi các link này
<html>
<head>
<script>
function ajaxLoad(url,id){ alert('url: '+url+'id:'+id);}
function htmlBASIC(){
obj = document.getElementsByTagName('a');
for(i=0;i<obj.length;i++) {
href = obj[i].getAttribute("href").replace(/^http:\/\/[^\/]+/i, "http://"+window.location.hostname+"/")
id = obj[i].getAttribute("rel");
rev = obj[i].getAttribute("rev");
if(this.id) {
obj[i].setAttribute("href", this.href);
obj[i].onclick = function() {ajaxLoad(this.getAttribute("href"),this.getAttribute("rel")); return false;}
}
else if(this.rev) {
obj[i].onclick = function() {document.getElementById(this.rev).style.display = 'none'; return false; }
}
}
}
window.onload = function() { htmlBASIC();}
</script>
</head>
<body>
<a href="url" rel="id">Click</a>
-> tương đương với 2 câu trên
<a href="#" ref="id">Click</a>
-> set thuộc tính display: none cho tag có id = "id"
* nếu ghi: <a href="url">Click</a> thì được hiểu là link bình thường.
</body>
</html>
Ghi rõ nguồn www.phpbasic.com khi phát hành lại nội dung bài viết này
<a href="#" onclick="ajaxLoad(url,id)">Click</a>
hoăc <a href="javascript:ajaxLoad(url,id)">Click</a>
Với cách này nếu trên 1 site có nhiều link thì sẽ làm tăng dung lượng file .html rất nhiều, TG dùng cách khác để ghi các link này
<html>
<head>
<script>
function ajaxLoad(url,id){ alert('url: '+url+'id:'+id);}
function htmlBASIC(){
obj = document.getElementsByTagName('a');
for(i=0;i<obj.length;i++) {
href = obj[i].getAttribute("href").replace(/^http:\/\/[^\/]+/i, "http://"+window.location.hostname+"/")
id = obj[i].getAttribute("rel");
rev = obj[i].getAttribute("rev");
if(this.id) {
obj[i].setAttribute("href", this.href);
obj[i].onclick = function() {ajaxLoad(this.getAttribute("href"),this.getAttribute("rel")); return false;}
}
else if(this.rev) {
obj[i].onclick = function() {document.getElementById(this.rev).style.display = 'none'; return false; }
}
}
}
window.onload = function() { htmlBASIC();}
</script>
</head>
<body>
<a href="url" rel="id">Click</a>
-> tương đương với 2 câu trên
<a href="#" ref="id">Click</a>
-> set thuộc tính display: none cho tag có id = "id"
* nếu ghi: <a href="url">Click</a> thì được hiểu là link bình thường.
</body>
</html>
Ghi rõ nguồn www.phpbasic.com khi phát hành lại nội dung bài viết này
Tra loi 9 comment(s) 2007-07-12 12:06:45
Quoc Hung 2007-07-13 13:26:52
Error: syntax error
Source Code:
href = obj[i].getAttribute("href").replace(/^http://[^/]+//i, "http://"+window.location.hostname+"/")
Tra loi
ABC 2007-09-06 04:19:07
<a href='abc.html' rel='hienthi'> Thì nó ko có tác dụng.
Chỉ có tác dụng ngay tại file chủ à.
Tra loi
NữThần 2007-10-08 09:11:50
Tại sao phải có câu này.
TG có link như thế này: /discuss/view/54. Vậy câu lên trên có thừa hay không, vả lại link này đã rewrite rùi hả, trong ajax link rewrite vẫn hoạt động bình thường hả?
Tra loi
darkera13 2007-10-09 02:37:50
Tra loi
NữThần 2007-10-09 11:41:21
Tra loi
NữThần 2007-10-21 10:23:21
Bà con ráng trả lời dùm đi:
<?
href = obj[i].getAttribute("href").replace(/^http://[^/]+/i, "http://"+window.location.hostname+"/")
?>
Câu này làm gì vậy, cái link của em nó có dạng thế này:
<a href="/include/test.php"> Test </a>, thì có sao không?
Tra loi
uoon 2007-10-21 08:52:40
<?
href = obj[i].getAttribute("href").replace(/^http://[^/]+/i, "http://"+window.location.hostname+"/")
?>
Câu này làm gì vậy, cái link của em nó có dạng thế này:
<a href="/include/test.php"> Test </a>, thì có sao không?
Hix đọc code của bác TG loằng ngoằng thật.
Cái câu bạn hỏi có thể nó làm việc như thế này:
VD:
<a href="http://include/test.php"> Test </a>
được chuyển thành:
<a href="http://www.phpbasic.com/include/test.php"> Test </a>
với điều kiện site của bạn là phpbasic, còn nếu domain của bạn là gì gì thay vào chỗ www.phpbasic.com đấy.
Chưa test nên cũng không biết có đúng ý ông TG không?
Tra loi
Vy Quang Hoa 2008-08-13 06:50:37
Tra loi
TNguyễn 2008-11-17 10:05:36
function checkUrl()
{
url=window.location.href;
if (url != '' && url!=lastUrl)
{
c_url=window.location.href;
c_url=c_url+'#';
c_url=ct_url.split('#');
c_url=c_url[1];
if (c_url)
ajaxLoad(c_url);
lastUrl=url;
}
}
setInterval('checkUrl()',500);
Tra loi
Y kien