0

次のコードはChromeでエラーを出します。window.location.href文字列を返さないようですが、それはおかしいようです。

コードは次のとおりです。

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無駄に試みた。

4

3 に答える 3

4

現時点では、このString.containsメソッドはFirefox19でのみサポートされているようです。

String.contains-JavaScript | MDN

そのページには、MooToolsとのいくつかの非互換性についても言及されています。おそらくあなたの問題は関連しています。とりあえず、このようにハッシュ値を取得できます

var hashValue = window.location.hash.substr(1) || null;
于 2013-02-04T22:11:40.363 に答える
4

.indexOf代わりに役立つかもしれません.contains

hashValue = theUrl.indexOf('#') > -1 ? ... : ...;
于 2013-02-04T22:17:52.147 に答える
1

文字列オブジェクトには「contains」という関数はありませんが、使用できるのは「indexOf」関数です。この関数は、対象の文字列がターゲット文字列で見つかった場合は0以上、それ以外の場合は-1を返します。

もう1つのコメント:window.location.hashを使用してハッシュ値を取得できるため、上記で行っていることを行う代わりに、次のようなことを行う必要があります。

var hashValue = window.location.hash.substr(1)|| ヌル;

于 2013-02-04T22:19:50.503 に答える