【问题标题】:iPad Chrome only 1st Tab fail with window.closeiPad Chrome 仅第一个选项卡因 window.close 而失败
【发布时间】:2014-10-31 14:34:35
【问题描述】:

对于 iPad 中的 Chrome,我有一个奇怪的问题,如下所示。

有一个网页,调用window.open和window.close来选择用户并关闭。 H/w在第一个Tab页时,可以成功调用window.open打开页面选择用户,但是当点击select调用window.close时,它没有任何改变就不起作用,仍然停留在当前屏幕选择用户。

但是如果我在2nd, 3rd...Tab 页面打开网页,它可以同时成功window.open 和window.close 来完成用户选择过程。

同时,如果我清除所有浏览数据并关闭所有标签页,那么新的第一个标签页将与 window.open 和 window.close 一起使用。

但如果我不仅清除所有浏览数据,还强制关闭 Chrome(双击主页按钮并刷出 Chrome),那么新的第一个标签页将失败并显示 window.close。

另一个有趣的发现是,如果我在 Chrome 的第一个选项卡上打开诸如 google.com,然后在第二个选项卡中仍然打开我的网络并调用 window.open 和 window.close,它们都可以正常工作。

我可以知道 Chrome 的第一个选项卡是否有任何区别,或者 iPad 中 Chrome 的 window.close 是否有其他问题。

最后我发现可能是 root 问题,因为 opener 在第一个选项卡上为空。

请您帮忙检查一下,谢谢!

    function doSelect( userid, username )
        {
            opener.document.`formName`.`fieldPrefix`_ID.value = userid;
            opener.document.`formName`.`fieldPrefix`_Name.value = username;

            if ( opener.document.`formName`.`fieldPrefix`_SavedName )
            {
                opener.document.`formName`.`fieldPrefix`_SavedName.value = username;
            }

            if ( opener.markDirty != null )
            {
                opener.markDirty();
            }

            window.close();
        }

     function chooseUser( prefix, title, filter ){
         window.open("/livelink/livelink.exe?func=user.SelectUserDlg&formname=ReportPrompts&fieldprefix=" + prefix + "&title=" + title + filter + "&DisplayUserName","","height=340,width=680,scrollbars=yes,resizable=yes,menubar=no")

【问题讨论】:

标签: javascript ipad google-chrome window


【解决方案1】:

由于早期 JavaScript 的滥用,浏览器只会让您window.close() 一个您通过 JavaScript 创建的窗口或一个全新的窗口。

http://www.w3.org/TR/html51/browsers.html#dom-window-close

Window 对象的 close() 方法应该满足以下条件 条件满足,关闭浏览上下文A:

  • 相应的浏览上下文 A 是可脚本关闭的。
  • 该 由现有设置指定的负责任的浏览上下文 对象熟悉浏览上下文 A。
  • 负责人 允许现有设置对象指定的浏览上下文 浏览浏览上下文 A。

浏览上下文是 如果它是辅助浏览上下文,则脚本可关闭 由脚本创建(而不是由用户的操作),或者如果它 是一个顶级浏览上下文,其会话历史仅包含 一份文件。

【讨论】:

  • 所以在第一个选项卡中,调用 window.open 然后 window.close,如何使 window.close 工作?谢谢
猜你喜欢
  • 1970-01-01
  • 2015-02-15
  • 2018-10-02
  • 1970-01-01
  • 2016-10-14
  • 1970-01-01
  • 2013-06-17
  • 1970-01-01
  • 2016-01-14
相关资源
最近更新 更多