有没有办法让普通链接通过ajax自动加载,而不是正常?

时间:2009-09-19 17:42:50

标签: ajax dynamic loading hyperlink dynamic-links

我没有解释清楚。

但我的意思是,如果我有一个ajax脚本通过函数'loadpage('whatever.php')加载DIV元素中页面的内容,而不是手动执行此操作链接,有没有办法让脚本自动使所有常规链接通过该ajax函数加载?

就像在Facebook上一样,您的个人资料通过ajax加载,但如果您查看他们的代码,他们只需要定期链接到该个人资料。

干杯!

3 个答案:

答案 0 :(得分:7)

当然,你可以用jQuery做到这一点。

此脚本遍历文档,查找每个锚元素并将事件处理程序绑定到每个元素的click事件。单击anchor元素时,事件处理程序会找到href属性并将该页面加载到#targetDiv中(当然,您可以随意调用此div)。

<script type="text/javascript"
        src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js">
</script>
<script type="text/javascript">
$(document).ready(function() {
  $("a").click(function() {
    $("#targetDiv").load(($(this).attr("href") + " body");
    return false;
  });
});
</script>

...

<!-- In your document body, this is the div you'd load the pages into. -->
<div id="targetDiv"></div>

答案 1 :(得分:1)

你可以使用JQuery(如果我理解你的问题)。

首先,你可以按如下方式设置loadpage()函数:

function loadpage(divId, url) {
    $('#' + divId).load(url);

    return false;
}
但是,所有浏览器都不支持

.load()。如果你想在没有.load()的情况下这样做,那么你可以查看.get()。有关.load()的更多信息,请查看http://docs.jquery.com/Ajax/load

答案 2 :(得分:1)

我假设它会像这样:

$(document).ready(function(){
    $("a").click(function(){
        $("body").load($(this).attr("href") + " body");
        return false;
    });
});

这会使页面上的所有<a>标记调用一个函数,从标记的href属性下载HTML文档,删除它的正文标记,并替换当前页面的内容body标签包含新body标签的内容。通过这种方式,无需JavaScript即可轻松完成此任务,并将其集成到现有站点中。

要使用它,请将其放入主页头部的<script>标记或外部JS文件中。

但请注意,此代码仅更新<body>标记的内容,标题(包括标题标记)保持不变。您可能需要添加额外的代码来更新这样的内容。