URL中的尾随散列(#)会破坏一些Javascript

时间:2017-06-02 18:18:59

标签: javascript jquery wordpress hash

我遇到一个奇怪的问题,只要页面最后加载了一个哈希,ex。 #home或#quotes。当链接末尾有一个哈希时,一些javascript会中断。没有哈希时页面工作正常。

实例:

http://real-ufos.com/ - 作品

http:// real-ufos.com/#home - 相当多的javascript事情被打破(地球的定位,平滑滚动到哈希部分,评论标签,打开漂亮照片灯箱等)

以下是脚本文件:http:// real-ufos.com/wp-content/themes/real-ufos/js/scripts.js,我猜最有可能包含这个问题。

(因为我不能发布多个链接而不得不拆分链接)

这是与Trailing hash (#) in URL breaks some Javascript?类似的问题 - 但我找不到答案。

1 个答案:

答案 0 :(得分:0)

当您转到您的页面real-ufos.com/#home时,浏览器控制台会显示错误 Uncaught Error: Syntax error, unrecognized expression: a[href=#home]

此表单的CSS或xpath选择器应该在属性值周围加上引号:tag[attribute="value"]

您可以更改scripts.js文件以放入引号

window.location.hash ? 'a[href=' + window.location.hash + ']'
// becomes
window.location.hash ? 'a[href="' + window.location.hash + '"]'
//                             ^                            ^

这应该使语法正确并纠正错误。