制作哈希抓取以#! 而幸存的变化

我想使我的网站抓取通过改变#到#! 在点击链接时,页面工程确定,但我不能设法修复脚本直接从URL调用的哈希值。

这是我

$(function() { $("#tabs a").click(function() { var page = this.hash.substr(2); $.get(page+".php", function(gotHtml) { $("#content").html(gotHtml) }); }); (location.hash) ? $("a[href="+location.hash+"]").click() : $("#tabs a:first").click() });

身体

< ul id="tabs"> < li>< a href="#!foo" >foo</a>< /li> < li>< a href="#!foo2" >foo2</a>< /li> < li>< a href="#!foo3" >foo3</a>< /li> < /ul>

当我点击美孚,内容加载好了,但如果我把我的网站www.foo.com/#!foo,它不会加载的内容。

任何人都可以指导我?

--------------解决方案-------------

如果你在错误控制台看,你会看到它抛出以下异常:

未捕获的错误:语法错误,无法识别的表达式:[!HREF =#foo2的]

为了解决这个问题,你可以非常轻微改变你的JavaScript。

$(function() {
$("#tabs a").click(function() {

var page = this.hash.substr(2);

$.get(page+".php", function(gotHtml) {
$("#content").html(gotHtml)
});
});

(location.hash) ? $("a[href='"+location.hash+"']").click() : $("#tabs a:first").click()

});

请注意,我在你的选择你的HREF部分正好卡单引号。

与此相关的,我会建议,如果你要做哈希刘海(他们是一个头痛),你做href属性,你要实际的URL值。 在JavaScript中做切换到一个哈希爆炸。 这样做的原因是用户禁用JavaScript将无法使用您的网站。 您的点击功能都不会改变,因此稍微设置散列,加载页面,并禁用默认点击行为。

更新问题:在相关的说明,我的意思是,如果href="#!foo"这HREF变化实际上是href="foo.php" 如果用户不启用JavaScript,他们可以去foo.php,看到的页面。 如果用户确实有JavaScript的放置在URL中hashbang和你以前做了什么。 您可以手动做到这一点; 然而,像jQuery烧烤库可以真正使这个平凡的。

分类:JavaScript的 时间:2015-03-15 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.365 (s). 10 q(s)