2014-10-20 62 views
-1

因爲window.showModalDialog不適用於chrome,我使用它的情況下firefoxchrome我使用window.open但我的問題是窗口的返回值。打開未定義也許是因爲在我關閉子窗口之前javascript繼續,所以我試圖把代碼置於這種情況if (returnValue.closed) ..但問題是子窗口正在加載所有時間,我無法從中選擇我的值。使用window.open在鉻的情況下

這是我的代碼:

if (window.showModalDialog) { 
    var retVal = window.showModalDialog(...) 

if (!window.showModalDialog) { 
var retVal = window.open(...); 
      while (a == 0) { 
       if (retVal.onload()) { 
        if (retVal.closed) { 
         if (retVal != null) {... 
         } 
        } 
       } 
     } 
    } 

任何幫助,高度讚賞。

+0

哇,夥計。你的問題在這裏不清楚。如果可以的話,請將您的代碼分解成代碼塊,並在您的問題中添加一些標點符號。 :) – Sneagan 2014-10-20 06:35:38

回答

1

showModalDialog是一個不建議使用的功能。你可以看到http://blog.chromium.org/2014/07/disabling-showmodaldialog.html瞭解更多詳情。

我建議你使用其他選項(從許多可用在那裏)一個javascript「彈出」,也將「凍結」頁面和其他人一樣的:

您需要找到另一種方法將返回值傳遞迴您的頁面,具體取決於您選擇使用的選項。

+0

感謝您的幫助我使用第一個選項https://github.com/niutech/showModalDialog,但問題是使用open.showModal對話框後,函數的參數會丟失。我的意思是如果我想通過document.getElementById(one_of_the_function_arguments)設置文本框中的返回值,它不工作,因爲這個參數只在谷歌瀏覽器中丟失!你有什麼想法,爲什麼?再次感謝 – 2014-10-22 07:43:02