動作するポートレットアプリケーションがありますFirefoxとChromeでは問題なく動作しますが、IE 8および9では爆破されますが、ポータルページにポートレットのインスタンスが5つ以上ある場合のみです。ページにポートレットのインスタンスが4つ以下の場合、IEでも正常に機能します。
ページに5つ以上のポートレットのインスタンスがある場合に表示されるエラーは次のとおりです。
SCRIPT87:引数が無効です。 jquery-1.5.2.min.js、行16文字25442
コードはjQueryといくつかのプラグイン、つまりjqGridを使用します。ここに私がこれまで問題を解決しようとしたものがありますが、どれも違いはありませんでした:
- jQueryおよびjQuery-UIライブラリをアップグレードしました。コードはそれぞれ1.5.2と1.7.2を使用します。最新バージョンにアップグレードしても違いはありません。
- jqGridライブラリをアップグレードしました。コードはバージョン4.1.2を使用します。 4.3.2にアップグレードしても違いはありません。
- bgiframeプラグインをアップグレードしました。コードはバージョン2.1を使用します。 2.1.3にアップグレードしても違いはありません。
IEであるため、何が起こっているのかをデバッグするのは非常に困難です。
誰もこの行動を見たことがありますか、何が起こっているのかについて何か考えがありますか?
更新:
OK、jQueryファイルの最小バージョンを非縮小バージョンに置き換えました。 IE 8のページにポートレットのインスタンスが5つ以上ある場合に表示されるエラーは次のとおりです。
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 );
}
何か案は?
回答:
回答№1は4ここで何が間違っていたのかがわかりました。既に多くのCSSがロードされている場合にIEでCSSファイルを動的にロードすると、問題が発生する可能性があります。見る IEでCSSスタイルシートを動的にロードできない
うまくいけば、これが同じ問題に出くわす他の誰かを助けます。
回答№2の場合は0
多分あなたのページは整形式ではないJSONを追加しています。
var jsonThatWorksOnFirefoxAndChrome = {
first:"ok",
last: "not ok, remove the comma after this string to fix it",
}
ChromeとFirefoxは最後のカンマを無視します。
回答№3の場合は0
また、jQueryの競合をチェックし、jQueryの1つのバージョンのみを1回だけ含めるようにしてください。