3

我没有很好地解释这一点。

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

就像在 Facebook 上一样,您的个人资料通过 ajax 加载,但如果您查看他们的代码,他们只是有一个指向个人资料的常规链接。

干杯!

4

4 回答 4

7

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

该脚本遍历文档,找到每个锚元素并将事件处理程序绑定到每个锚元素的单击事件。单击锚元素时,事件处理程序会找到 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>
于 2009-09-19T17:48:11.700 回答
1

您可以为此使用 JQuery(如果我正确理解您的问题)。

首先,您可以使函数 loadpage() 如下所示:

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

    return false;
}

不过,并非所有浏览器都支持 .load() 。如果您想在没有 .load() 的情况下执行此操作,则可以查看 .get()。有关 .load() 的更多信息,请查看http://docs.jquery.com/Ajax/load

于 2009-09-19T17:49:55.903 回答
1

我假设它会是这样的:

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

这将使<a>页面上的所有标签调用一个函数,该函数从标签的href属性中下载 HTML 文档,去掉它的 body 标签,并将当前页面的 body 标签的内容替换为新的 body 标签的内容。这样,无需 JavaScript 即可更轻松地完成这项工作,并将其集成到现有站点中。

要使用它,您可以将其放入<script>主页面头部的标记中,或者放在外部 JS 文件中。

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

于 2009-09-19T17:52:52.387 回答
1

简单而美好。看看这个: Bjax

用法:

<script src="bjax.min.js" type="text/javascript"></script>
<link href="bjax.min.css" rel="stylesheet" type="text/css" />

最后,将其包含在 html 的 HEAD 中:

$('a').bjax();

有关更多设置,请在此处查看演示: Bjax 演示

于 2015-11-24T01:26:47.673 回答