私は最近、JSP、Javascript、および Java を組み合わせた巨大な Web アプリケーションを継承しました。xml データ アイランドなどを使用してコーディングされているため、IE でのみ動作し、他のブラウザではスムーズに機能しません。IE9/10がアプリケーションのJavaScriptの一部に問題を抱えている少数のユーザー向けにWindows 7ボックスが展開された数日まで、すべてが順調でした. たとえば、次のデータ アイランドは、私の HTML ページのスニペットです。
<xml id = "underlyingdata" ondatasetcomplete="window.dialogArguments.parent.repopulateDropDown(this, underlyingdd)">
</xml>
<xml id="termdata" ondatasetcomplete="window.dialogArguments.parent.repopulateDropDown(this, termdd)">
</xml>
このページには別のコード行があります
window.dialogArguments.parent.request(underlyingdata, "CONTRACT.LIST.WB", "PULP AND PAPER|" + instrumentdd.options[instrumentdd.selectedIndex].text);
次のような関数を呼び出します
function request(xmldataisland, requestmethod, parameters
{
var screwcache=Math.round(Math.random()*10000);
xmldataisland.value=null;
xmldataisland.load("/webaccess/Request?sessionid=" + sessionid + "&request=" + requestmethod + "¶meters=" + parameters+"&screwcache="+screwcache);
}
これは IE9/10 では失敗し、「load」は「xmldataisland」オブジェクトの有効なメソッドではないというエラー (スクリプト 438 エラー) が表示されますが、IE 5 から IE 8 では問題なく動作します。
上記の関数の xmldataisland オブジェクトは XMLDocument 型だと思います。load メソッドが失敗するのはなぜですか? この問題の回避策は何ですか? 多くの情報源から、データ アイランドを使用するのはひどい考えだと読んだり聞いたりしています。その場合、これの正しい代替手段は何でしょうか?