2012-03-17 84 views
2

我某處有這個線在我的JS文件如何在Internet Explorer 8中修復Internet參數代碼:0?

while(this.c.offsetWidth > this.w - s && --exit){ 
    w = isNaN(this.cw[0])? this.w - s : --this.cw[0]; 
    if(w < 1 || this.w < Math.max(1, s)){break;} 
    this.c.style.width = isNaN(this.cw[0])? this.w - s + 'px' : --this.cw[0] + this.cw[1]; 
    } 

IE不斷告訴我Invalid Argument code:0

,但它的工作在其他瀏覽器(如IE瀏覽預期)

+0

IE什麼?版? – mpm 2012-03-17 10:14:06

+1

就像它站在那裏,你的JS格式不正確 - 缺少一個'{' – Christoph 2012-03-17 10:15:05

+0

對不起,代碼編輯,沒有複製整個循環 – 2012-03-17 10:16:18

回答

2

我的猜測是,問題就出在這行:

this.c.style.width = 
    isNaN(this.cw[0]) ? this.w - s + 'px' : --this.cw[0] + this.cw[1]; 

如果您仔細考慮this.c.style.width的設置,您會發現它會設置爲不同的結果。確切地說,在前者中你使用'px',但在後者中你不會。顯然,其中一個是正確的,而另一個是錯的...

Here is another example其中結尾字符是問題。

+0

的isNaN是有實際檢查東西吧我的意思是我沒有建立的代碼,這裏的鏈接源 – 2012-03-17 11:23:21

+0

HTTP:// www.dynamicdrive.com/dynamicindex2/crawler/index.htm – 2012-03-17 11:24:02

+0

@RonanDejhero:不,isNaN檢查它是否被定義了一個有效值,根據寬度可以用'px'而不用'px'來設置,其中一個是錯的。另外,[它只適用於我](http://jsfiddle.net/GrkJf/),所以你可能想檢查你的實現有什麼不同... – 2012-03-17 11:28:58

0

罰款它可能是一個訂單你的三元操作問題?見下面,我把括號圍繞this.w的變化 - 這個來確保被追加「PX」之前執行的操作:

this.c.style.width = isNaN(this.cw[0])? (this.w - s) + 'px' : --this.cw[0] + this.cw[1]; 
+0

不,沒有工作:(我討厭IE – 2012-03-17 10:28:44

+1

告訴我吧 – davidethell 2012-03-18 01:55:31