2017-06-02 91 views
-1

我遇到了一个奇怪的问题,每当页面加载一个散列在最后,例如。 #home或#quotes。当链接末尾存在散列时,一些javascript会中断。当没有散列时,该页面正常工作。URL中的尾部散列(#)打破了一些Javascript

活生生的实例:

http://real-ufos.com/ - 工程

的http:// real-ufos.com/#home - 相当多的JavaScript的东西坏了(地球定位,平滑滚动哈希部分,注释标签,打开prettyphoto灯箱等)

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

(不得不分手的联系,因为我不能发布一个以上)

这是Trailing hash (#) in URL breaks some Javascript?过类似的问题 - 但我无法找到我的答案在那里。

+0

您是否在您的浏览器控制台中查找错误? '未捕获的错误:语法错误,无法识别的表达式:a [href =#home]' –

+0

尝试在href值周围加引号:'window.location.hash? ''[href =''+ window.location.hash +'“]''在你的'scripts.js?ver = 4.7.5'的第46行,所以不是'a [href =#home]'出来as'a [href =“#home”]' –

+0

喔!那就是诀窍。谢谢你一吨。 – Alx

回答

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 + '"]' 
//       ^      ^

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