window.location.indexNefunguje v Javascriptu

window.location je vlastnost přístupového objektu a získáním jeho hodnoty získáte objekt, nikoli řetězec, a proto nemá indexOf funkce. (Je naprosto pochopitelné, že si lidé někdy myslí, že je to řetězec, od kdy nastavíte jeho hodnotu, setter vlastnosti přístupového objektu přijímá řetězec; tedy window.location = "some url"; skutečně funguje. Ale když dostanete to, nedostanete řetězec.)

Můžete použít window.location.toString() , String(window.location) nebo window.location.href získat pro něj řetězec, pokud chcete, nebo použít některou z jeho různých vlastností ke kontrole specifik. Z odkazu uvedeného příkladu adresy URL http://www.example.com:80/search?q=devmo#test :

  • hash :Část adresy URL, která následuje za symbolem #, včetně symbolu #. Můžete naslouchat události hashchange, abyste byli informováni o změnách hash v podporovaných prohlížečích.
    Příklad:#test
  • host :Název hostitele a číslo portu.
    Příklad:www.example.com:80
  • hostname :Název hostitele (bez čísla portu).
    Příklad:www.example.com
  • href :Celá adresa URL.
    Příklad:http://www.example.com:80/search?q=devmo#test
  • pathname :Cesta (vzhledem k hostiteli).
    Příklad:/search
  • port :Číslo portu adresy URL.
    Příklad:80
  • protocol :Protokol adresy URL.
    Příklad:http:
  • search :Část adresy URL, která následuje za ? symbol, včetně ? symbol.
    Příklad:?q=devmo

Například pro váš citovaný příklad můžete zaškrtnout window.location.hostname === "localhost" .


Pokud vím, window.location je Location object .

Například window.location.href vám poskytne celou adresu URL.

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

Tento druh kontroly však nutně spouští falešně pozitivní výsledky. Je lepší použít window.location.hostname vlastnost, která obsahuje část názvu hostitele.

var hostname = window.location.hostname;
alert(hostname === "my.domain.com");

No