为什么我收到错误 - indexOf Uncaught TypeError

时间:2015-08-10 21:57:54

标签: javascript

问题是什么? 为什么它找不到函数indexOf和length?

window.onpopstate = function(event) {
    var string1 = document.location;
    var stringpos;
    stringpos = string1.indexOf('#');

    var hashstring = string1.substring(stringpos,string1.length());

    alert(hashstring);

    alert("location: " + document.location);
};

3 个答案:

答案 0 :(得分:2)

document.location是一个没有indexOf方法的对象。通常,只希望字符串和数组具有该方法(并且document.location不是那些)。

我想你想在indexOf上使用document.location.href,这是一个字符串:

document.location.href.indexOf('#');

答案 1 :(得分:0)

尝试直接获取哈希,而不是使用字符串操作。

    window.onpopstate = function(event) {
        var hashstring = document.location.hash;
        alert(hashstring);
        alert("location: " + document.location);
    };

答案 2 :(得分:0)

首先使用

var string1 = document.location.href

var string1 = document.location.toString()

然后使用string1.length而不是string1.length()抛出Uncaught TypeError:string1.length不是函数