2

Web アプリケーションで YUI DataTable を使用しています。DataTable を閉じて他の DataTable に移動すると、DataTable がデータをフェッチしている間、「このスクリプトの実行を停止しますか?」というメッセージが表示され続けます。メッセージを確認します。このメッセージを回避したいので、DataTable を閉じるとすぐにスクリプトの実行を停止したいと考えています。あなたの提案をしてください。さらに情報が必要な場合はお知らせください。JavaScript から Web サービス呼び出しを行って、DataTable にデータを入力しています。それがプロンプトの原因であると思われます。スクリプトが Web サービス呼び出しを実行するのを停止する方法が必要です

DataTable の表示: ShowDialog(DisambigPanel, ReturnElement) document.getElementById("DisambigList").focus();

DisambigDataSource = new YAHOO.util.DataSource(DisData[CurDisType].URL);
DisambigDataSource.responseType = YAHOO.util.DataSource.TYPE_XML;  
DisambigDataSource.responseSchema = {resultNode: DisData[CurDisType].Node, fields: DisData[CurDisType].Fields};         

var TableConfig =
{
    sortedBy: {key:DisData[CurDisType].SortKey, dir:"asc"},
    selectionMode: "single",
    initialRequest: BuildRequestString(),
    scrollable: true,        
    width: "940px",
    height: "340px",
    renderLoopSize: 20
}; 

YAHOO.widget.DataTable.MSG_LOADING = "<img src=\"/Images/Wait/DataGrid.gif\" alt=\"Loading animation\"/> Loading...";
YAHOO.widget.DataTable.MSG_EMPTY = "No results.";
DisambigTable = new YAHOO.widget.DataTable("DisambigList", DisData[CurDisType].ColumnHeaders, DisambigDataSource, TableConfig);

YAHOO.util.Event.removeListener("DisambigList", "keydown"); 
YAHOO.util.Event.addListener("DisambigList","keydown",DisambigKeyDown);

DisambigTable.subscribe("initEvent",DisambigLoad);
DisambigTable.subscribe("cellDblclickEvent",DisambigSelect);
DisambigTable.subscribe("rowSelectEvent",DisambigSelectionChange) 

関数 ShowDialog(dialog,returnFocus) { OldFocus = returnFocus; VisibleDialog = ダイアログ;

dialog.show()

var x = new YAHOO.util.KeyListener(document, { keys:27 }, { fn: HideDialog, scope:dialog, correctScope:true } ); 
x.enable();
dialog.cfg.queueProperty("keylisteners", x);

}

function HideDialog() {
// 現在のダイアログが表示されている場合は非表示にします if (VisibleDialog) { // 現在のダイアログを非表示にします VisibleDialog.hide(); VisibleDialog = null; }

if (OldFocus)
{
    OldFocus.focus();
    OldFocus = null;
}

}

4

1 に答える 1

1

私が覚えている限りでは、スクリプトに時間がかかりすぎたり、無限ループになったりすると、そのようなプロンプトが FireFox によって表示されます。使用しているブラウザとは別のブラウザで動作するかどうかを確認してみてください...

于 2009-10-01T04:28:25.197 に答える