YUI DataTable - как избежать «Прекратить запускать этот скрипт?» подтвердить сообщение - PullRequest
2 голосов
/ 01 октября 2009

Я использую YUI DataTable в своем веб-приложении. В то время как мой DataTable извлекает данные, если я закрываю их и перехожу к другому DataTable, я получаю сообщение «Прекращать выполнение этого сценария?» подтвердить сообщение. Я хочу избежать этого сообщения и остановить выполнение скрипта, как только закрою DataTable. Пожалуйста, дайте ваши предложения. Пожалуйста, дайте мне знать, если вам нужно больше информации. Я делаю вызов веб-службы из JavaScript для заполнения DataTable. Я подозреваю, что это вызывает приглашение. Я хотел бы, чтобы способ остановить скрипт от выполнения вызова веб-службы

Отображение таблицы данных: ShowDialog (DisambigPanel, ReturnElement) document.getElementById ( "DisambigList") фокус ();.

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 (диалог, returnFocus) { OldFocus = returnFocus; VisibleDialog = dialog;

dialog.show()

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

}

функция HideDialog () {
// Скрыть текущий диалог, если он виден if (VisibleDialog) { // Скрыть текущий диалог VisibleDialog.hide (); VisibleDialog = null; }

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

}

1 Ответ

1 голос
/ 01 октября 2009

Ну, насколько я помню, такая подсказка отображается FireFox, если скрипт занимает слишком много времени или находится в бесконечном цикле. Попробуйте проверить, работает ли он в другом браузере, кроме того, который вы используете ...

...