IE与jquery的参数无效

时间:2012-04-19 20:32:30

标签: jquery internet-explorer jqgrid invalid-argument

我有一个在Firefox和Chrome中完美运行的portlet应用程序,但是在IE 8和9中爆炸,但是只有在门户页面上有5个或更多portlet实例时才会出现。如果页面上有4个或更少的portlet实例,它在IE中也能正常工作。

当我在页面上有5个以上的portlet实例时,我看到的错误是:

  

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没有任何区别。
  4. 因为它是IE,所以很难调试以查看发生了什么。

    之前有没有人见过这种行为或对可能发生的事情有所了解?

    更新:

    好的,我已经用非缩小版本替换了jQuery文件的最小版本。这是我在IE 8页面上有5个以上portlet实例时看到的错误:

    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 );
                }
    

    有什么想法吗?

3 个答案:

答案 0 :(得分:4)

我弄清楚这里出了什么问题。事实证明,当已经加载了大量CSS时,在IE中动态加载CSS文件会导致问题。见Dynamically loading css stylesheet doesn't work on IE

希望这可以帮助遇到同样问题的其他人。

答案 1 :(得分:0)

也许你的页面正在添加一个格式不正确的JSON。

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

Chrome和Firefox只会忽略最后一个逗号。

答案 2 :(得分:0)

同时检查jQuery冲突并确保只包含一个版本的jQuery并且只包含一次。