10

以下は私が持っているものです。

var myString = "http://localhost:8888/www.smart-kw.com/";
alert(myString.indexOf("localhost"));

これによりアラートが表示されます...ただし、に変更var myString = "http://localhost:8888/www.smart-kw.com/";するvar myString = window.location;と機能しません(アラートが表示されません)。

var myString = window.location;
alert(myString.indexOf("localhost"));
4

3 に答える 3

32

window.locationはアクセサー プロパティであり、その値を取得すると、文字列ではなくオブジェクトが返されるため、関数はありませんindexOf(値を設定すると、アクセサー プロパティのセッターが文字列を受け入れるため、つまり、実際には機能するため、文字列だと思われることがあるのは完全に理解できますwindow.location = "some url";。しかし、値を取得しても、文字列は取得されません。)

window.location.toString()String(window.location)、またはを使用window.location.hrefして、必要に応じて文字列を取得したり、さまざまなプロパティを使用して詳細を確認したりできます。url の例を指定すると、リンクからhttp://www.example.com:80/search?q=devmo#test:

  • hash: URL の # 記号に続く部分 (# 記号を含む)。hashchange イベントをリッスンして、サポートしているブラウザーでのハッシュへの変更の通知を受け取ることができます。
    例:#test
  • host: ホスト名とポート番号。
    例:www.example.com:80
  • hostname: ホスト名 (ポート番号なし)。
    例:www.example.com
  • href: URL 全体。
    例:http://www.example.com:80/search?q=devmo#test
  • pathname: パス (ホストからの相対パス)。
    例:/search
  • port: URL のポート番号。
    例:80
  • protocol: URL のプロトコル。
    例:http:
  • search: URL の ? に続く部分。? を含む記号 シンボル。
    例:?q=devmo

たとえば、引用した例では、 をチェックできwindow.location.hostname === "localhost"ます。

于 2012-12-02T12:58:04.237 に答える
3

私の知る限りwindow.locationLocation object.

たとえば、window.location.hrefURL 全体が表示されます。

var url = window.location.href;
alert(url.indexOf("domain"));

しかし、この種のチェックは間違いなく誤検知を引き起こします。window.location.hostnameホスト名の部分を保持するプロパティを使用することをお勧めします。

var hostname = window.location.hostname;
alert(hostname === "my.domain.com");
于 2012-12-02T12:58:16.287 に答える