簡體   English   中英

Javascript在IE7和IE8中不起作用

[英]Javascript not working in IE7 and IE8

我當前正在創建一個網站,並且具有一些可在除IE7和IE8之外的所有瀏覽器中使用的javascript。 我通過插入幾個“ alert”語句對代碼進行了一些測試,並推斷出javascript在一個特定的“ if”語句處中斷。 它也不是'if'語句中的代碼,因為我也對此進行了測試。

我自己看不到實際的'if'語句有什么問題,但是請讓我知道IE7 / IE8和我生成的代碼是否有問題。 該代碼可以在下面看到。

在此先感謝您的幫助。

var Items = new Array("a","b","c","d");
var queryString = window.location.search.substring(1);

if(Items.indexOf(queryString) != "-1"){
    //code goes here
}

IE的Array原型上沒有“ indexOf()”函數。 如果有,它將返回一個數字值而不是一個字符串。

您可以在MDN文檔頁面上找到該函數的“ indexOf()” polyfill。

另外,在聲明和初始化數組時,請使用數組常量符號:

var Items = ["a", "b", "c", "d"];

這是在不支持Array的瀏覽器中擴展Array對象以支持indexOf的一種方法。 這樣做有其自身的問題,如果您曾經通過for(x in a)迭代數組(不建議)並且不檢查hasOwnProperty,這將給您帶來麻煩。

if(!Array.indexOf){
    Array.prototype.indexOf = function(obj){
        for(var i=0; i<this.length; i++){
            if(this[i]==obj){
                return i;
            }
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM