有没有办法让普通链接通过ajax自动加载,而不是正常?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有没有办法让普通链接通过ajax自动加载,而不是正常?相关的知识,希望对你有一定的参考价值。
我没有解释清楚。
但我的意思是,如果我有一个ajax脚本通过函数'loadpage('whatever.php')加载DIV元素中页面的内容,而不是手动对所有链接执行此操作,是有一种方法可以让脚本自动使所有常规链接通过该ajax函数加载吗?
就像在Facebook上一样,你的个人资料通过ajax加载,但如果你看一下他们的代码,他们就会有一个定期链接到个人资料。
干杯!
当然,你可以用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>
你可以使用JQuery(如果我理解你的问题)。
首先,您可以使函数loadpage()如下所示:
function loadpage(divId, url) {
$('#' + divId).load(url);
return false;
}
但是,并非所有浏览器都支持.load()。如果你想在没有.load()的情况下这样做,那么你可以查看.get()。有关.load()的更多信息,请查看http://docs.jquery.com/Ajax/load
我假设它会像这样:
$(document).ready(function(){
$("a").click(function(){
$("body").load($(this).attr("href") + " body");
return false;
});
});
这将使页面上的所有<a>
标签调用一个函数,该标签从标签的href
属性下载html文档,去掉它的body标签,并用新body标签的内容替换当前页面body标签的内容。这样,无需JavaScript即可轻松完成此任务,并将其集成到现有站点中。
要使用它,请将其放入主页头部的<script>
标记或外部JS文件中。
但请注意,此代码仅更新<body>
标记的内容,头部(包括标题标记)保持不变。您可能需要添加额外的代码来更新这样的内容。
简单又好看。看看这个: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 Demo
以上是关于有没有办法让普通链接通过ajax自动加载,而不是正常?的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法让 WebView 在 Android 中自动链接 URL 和电话号码?
有没有办法让Windows 7 x64从本地目录加载ntdll.dll,而不是system32?
通过 Websockets + NodeJS 而不是 AJAX 加载 Jade -> HTML