2012-04-19 67 views
0

我有一個Portlet應用程序,在Firefox和Chrome中完美地工作,但在IE 8和9中轟炸,但只有當門戶頁面上有5個或更多的portlet實例時。如果頁面上有4個或更少的portlet實例,它在IE中也可以正常工作。IE與jquery無效的參數

我看時,我有在頁面上portlet的5+實例的錯誤是:

SCRIPT87:無效的參數。 jQuery的1.5.2.min.js,行16字25442

代碼使用jQuery和少數的插件,即jqGrid的。以下是我迄今爲止嘗試解決的問題,其中沒有任何區別:

  1. 升級了jQuery和jQuery-UI庫。該代碼分別使用1.5.2和1.7.2。升級到最新版本沒有區別。
  2. 升級了jqGrid庫。該代碼使用版本4.1.2。升級到4.3.2沒有區別。
  3. 升級了bgiframe插件。該代碼使用版本2.1。升級到2.1.3沒有任何區別。

因爲它是IE,所以很難調試以查看發生了什麼。

有沒有人見過這種行爲之前或有任何想法可能會發生什麼?

UPDATE:

OK,我已經取代了分鐘版本與非精縮那些jQuery的文件。這是我看到的時候我已經在頁面上portlet的5+實例在IE 8中的錯誤:

Message: Invalid argument. 
Line: 2105 
Char: 5 
Code: 0 
URI: https://nasa-iceint.nasa.gov/portal/ice-theme/js/jquery-1.5.2.js 

下面是從jQuery文件相關代碼:

if (set) { 
       // convert the value to a string (all browsers do this but IE) see #1070 
       elem.setAttribute(name, "" + value); 
      } 

任何想法?

+0

不能直接確定你的問題,但有些插件可以用來在IE中進行調試。這裏只是[其中之一](http://www.firebugger.com/) – Terry 2012-04-19 20:46:35

+3

您可以換出jquery-1.5.2.js的縮小版本jquery-1.5.2.js並獲得更好的想法錯誤發生的地方。 – 2012-04-19 20:50:23

+0

+1,使用jquery的un-minified版本將有很大幫助。 – jimw 2012-04-19 21:13:56

回答

0

也許你的頁面添加了一個JSON格式不正確。

var jsonThatWorksOnFirefoxAndChrome = { 
    first:"ok", 
    last: "not ok, remove the comma after this string to fix it", 
} 

Chrome和Firefox將忽略最終的逗號。

+0

雖然不錯,但是JSON是有效的。沒有尾隨逗號。 – Zendog74 2012-04-24 17:29:41

0

還檢查jQuery衝突,並確保您只包含一個版本的jQuery,只有一次。