2010-07-27 3 views
1

Использование Dojo verions 1.3.2. Следующий код отлично работает в FF и Chrome, но работает в IE7/8. Я хватаю Диалог, который уже отображается и просто хочу изменить его содержимое. ODialogContents всегда одинаковы, работают или нет. Что происходит, Диалог исчезает, но подкладка остается так, что пользователь вынужден обновить страницу, чтобы снова запустить страницу.dijit.Dialog не перерисовывается в IE7 и IE8

function showDialog(oDialogContents) { 
var dialogBox = dijit.byId(DIALOG_PAGE); 
dialogBox.attr("style","width: 400px;"); 
dialogBox.attr("content", oDialogContents); 
dialogBox.show(); 
} 
+0

Вы говорите, что после того, как вы выполнили вышеуказанный код, и пользователь пытается закрыть диалоговое окно, нижняя часть остается позади? У вас есть страница, где мы можем видеть это? –

+0

Я пытался обновить содержимое диалогового окна, не закрывая его. Однако диалог просто исчезнет, ​​и наложение все еще будет на месте. В итоге я просто сделал .hide(), изменив содержимое, а затем .show(). – ron

ответ

0

У меня была та же проблема. Я установил его, добавив это после того, меняющееся содержание:

// new content not showing in IE7/8 unless we hide the dialog first 
if(dojo.isIE !== undefined) 
{ 
    this._dialog.hide(); 
    this._dialog.show(); 
} 

this._dialog.layout(); // re-centre in case width changed 

В основном Dijit должен быть скрыт и снова отображается для пользователей IE.

Смежные вопросы