2009-11-25 29 views

回答

1

當您執行showModalDialog,整個代碼序列被阻止。您需要關閉模態窗口才能繼續,但是win將會是null:P

5

模態窗口的定義是當前函數的執行停止,直到模態窗口關閉。也就是說,showModalDialog()的呼叫將會阻塞,直到所顯示的對話框關閉。因此,在之後,您的win.close()將被稱爲窗口已關閉(而不是您打算的)。

你有幾個選擇:

  • 顯示對話框作爲非模態,並在事件循環等到一定的條件得到滿足。然後,從調用函數關閉窗口。

  • 模態對話框在適當的時候關閉。

+0

然後有什麼辦法用腳本關閉模態對話框? – Mask 2009-11-25 09:42:28

+0

不,你不能關閉它,因爲它是模態的... – sdwilsh 2009-11-25 18:13:58

+0

那麼,對話框可以用'window.close()'關閉它自己*,但正如@sdwilsh所說,你不能從外面做任何事情它。 – 2009-11-25 18:23:45

0

模態對話框意味着直到關閉對話框後纔會執行下一個操作符。這就是爲什麼你放在下一行的任何東西都無法工作。

這就是模態對話框的目的 - 凍結當前窗口並從用戶那裏獲得一些強制輸入。如果你想立即關閉它,我懷疑你並不需要模態對話框。

順便說一句,showModalDialog的返回值是對話框返回代碼,而不是一個窗口變量!

通常情況下,模態對話框從內部關閉。如果你不想等待用戶的輸入,那麼在index.php代碼中必須有一些關閉它的東西。

+0

如何從內部關閉它,你可以更具體嗎? – Mask 2009-11-25 09:43:37

+1

你可能在index.php中有onLoad事件,它會設置一個計時器並在一段時間後調用window.close。 你想達到什麼目的?窗口閃爍並關閉?爲什麼? – 2009-11-25 12:02:31

0

如果你想從模態對話框內關閉它,你可以使用:

$ .trigger( 「點擊」)(,parent.document 「UI-對話框的標題欄關閉。」)

相關問題