以下代码在Chrome中给我一个错误。似乎window.location.href
没有返回String,但这看起来很疯狂。
以下是代码:
var theUrl = "" + window.location.href;
var hashValue = theUrl.contains("#") ? theUrl.split('#')[1] : null; (This is line 6)
这会在Chrome中返回以下错误:
Uncaught TypeError: Object someUrl#someHash has no method 'contains' myFile.js:6
(anonymous function) faq.js:6
k jquery.min.js:2
l.fireWith jquery.min.js:2
p.extend.ready jquery.min.js:2
D
有什么想法吗?
编辑:还尝试document.URL
无效。
答案 0 :(得分:4)
此时,String.contains
方法似乎仅受Firefox 19支持
String.contains - JavaScript | MDN
该页面还提到了与MooTools的一些不兼容性,也许你的问题是相关的。暂时你可以像这样检索哈希值
var hashValue = window.location.hash.substr(1) || null;
答案 1 :(得分:4)
.indexOf
也可能有用,而不是.contains
hashValue = theUrl.indexOf('#') > -1 ? ... : ...;
答案 2 :(得分:1)
字符串对象没有名为“contains”的函数,但您可以使用的是“indexOf”函数,如果在目标字符串中找到您感兴趣的字符串,它将返回值> = 0, - 1否则。
还有一条评论:您可以使用window.location.hash获取哈希值,因此您不需要执行上述任何操作,而是需要执行以下操作:
var hashValue = window.location.hash.substr(1)||空;