2014-10-20 34 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