我见过的大多数jquery深层链接插件都要求我将“#”附加到我的链接上。这是一个例子:
<a href="#page1.html">Page 1</a>
即便推特这样做(但是,推特遵循Google规范使用#!
进行可抓取链接,jquery深层链接库(如Jquery BBQ和Jquery地址)也支持此推文。
我使用新的Twitter关闭了Javascript,但它不起作用。我问这个问题是否可以应用深层链接,即使Javascript关闭,仍然有一个功能性网站。
提前致谢!
答案 0 :(得分:5)
这应该可以使用 HTML5 。我最近搜索了有关此主题的信息,并找到了 this very interesting library History.js 。
如果可能的话,使用 HTML5 进行无哈希深度链接, HTML4 则使用哈希(如果您愿意,则使用<或>)。
答案 1 :(得分:3)
不 - 如果你想使用AJAX深层链接,你将不得不以这种方式工作。锚是URL的唯一部分,可以在不重新加载页面的情况下进行更新。它通常不会发送到服务器,所以它总是由浏览器处理。
您可以做的一件事是在a
标记中包含实际链接,然后使用jQuery更新链接:
<a href="page1.html" class="ajaxLoad">Page 1</a>
<script>
$(function(){
$("a.ajaxLoad").each(function(){ this.href = '#' + this.href })
});
</script>
关闭JavaScript后,当用户点击该链接时,会将用户重定向到“page1.html”。否则,链接将更改为锚点,您应该能够使用深层链接代码将其选中。这样的好处是非JavaScript浏览器将能够正确使用链接(这包括搜索引擎蜘蛛)。
编辑:您知道,您可以执行一些操作,而不是使用JavaScript来更改它。例如,您可以附加到链接的点击处理程序,并使用load
或其他内容来更改要加载页面的区域。
$("a.ajaxLoad").click(function(e){
e.preventDefault();
$("#content").load(this.href + ' #content');
});
答案 2 :(得分:2)
Anchor是唯一可以在没有完整页面重新加载的情况下更改的部分。所以根据定义你没有别的办法。另外,根据定义,锚没有传递给服务器,因此关闭javascript - 这显然不起作用。