Internet Explorer 7/8 で Dojo に問題があります (これは Firefox で正常に動作します)。
基本的に、いくつかのタブを含むタブ コンテナーがあります (これらは dojox.layout.ContentPane のものです)。これらのタブの1つに、ダイアログをポップアップしてユーザーに何かを入力するように求める「コメントボックス」が必要です。コメントはバックエンドへの呼び出しによって保存され、タブをリロードして表示します新しいコメント。
私の保存ボタンのロジックは次のように機能します。
<button data-dojo-type="dijit.form.Button" type="button" data-dojo-props="iconClass:'dijitIcon dijitIconSave', showLabel: true" title="Add your comment">Add Comment
<script type="dojo/on" data-dojo-event="click" data-dojo-args="evt">
require(["dojo/dom"], function(dom)
{
var tText = dijit.byId('comment_70').get('value');
if (tText == '')
{
alert('You have not entered any comment');
return;
}
var tJSONRPC = new JSONRpcClient('JSON-RPC');
try
{
tJSONRPC.be.addComment('70', tText);
var tTab = dijit.byId('Detail_70');
tTab.refresh();
}
catch (Ex)
{
alert(Ex);
}
});
</script></button>
ひどい負担ではないようです (最後の 70 は ID であり、ユーザーはこれらを同時に複数開くことができるため、タブが表示されます)。
前述のように、これは Firefox では正常に機能しますが、IE 8/7 では機能しません。Dojo 内で生成されたコードの一部 (正確には _32.focus();) でエラーがスローされ、デバッグ コンソールに表示されるエラー メッセージは "メソッドまたはプロパティ アクセスへの予期しない呼び出しです」