0

我有一个在 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 没有任何区别。

因为是IE,所以很难debug看看是怎么回事。

有没有人以前见过这种行为或对可能发生的事情有任何想法?

更新:

好的,我已将 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 );
            }

有任何想法吗?

4

3 回答 3

4

我弄清楚这里出了什么问题。事实证明,当已经加载了很多 CSS 时,在 IE 中动态加载 CSS 文件可能会导致问题。请参阅动态加载 css 样式表在 IE 上不起作用

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

于 2012-05-21T13:08:30.017 回答
0

也许您的页面正在添加格式不正确的 JSON。

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

Chrome 和 Firefox 将忽略最后的逗号。

于 2012-04-23T21:01:01.800 回答
0

还要检查 jQuery 冲突,并确保只包含一个版本的 jQuery,并且只包含一次。

于 2013-02-18T08:38:45.797 回答