开发者问题收集

如何在父窗口中从弹出窗口打开 URL

2019-04-16
1133

我正在使用一个 drupal 模块,该模块允许我在弹出窗口中显示一些 html 代码,当然我也可以包含 javascript。要了解我所说的弹出窗口类型,只需访问模块页面 此处

该脚本允许我在倒计时结束后将用户重定向到外部 URL 地址 example.com

只有一个小问题:

example.com 显示在弹出窗口本身内,我希望它在当前浏览器选项卡中打开。

我尝试用 window.open 替换 window.location ,但这样根本不显示 example.com。但是在 Chrome DevTools JavaScript 控制台中我看不到任何消息。

使用 window.location.href 页面仍然在弹出窗口内打开

使用 window.opener.location example.com 根本不显示。这是控制台中的错误:

Uncaught TypeError: Cannot set property 'location' of null
    at countdown (splashify-splash:13)
    at <anonymous>:1:1

这是 HTML 代码:

<!-- Modify this according to your requirement -->
<h3>
  Redirecting to example.com after <span id="countdown">10</span> seconds
</h3>
<!-- JavaScript part -->
<script type="text/javascript">

    // Total seconds to wait
    var seconds = 10;

    function countdown() {
        seconds = seconds - 1;
        if (seconds < 0) {
            // Chnage your redirection link here
            window.location = "https://example.com";
        } else {
            // Update remaining seconds
            document.getElementById("countdown").innerHTML = seconds;
            // Count down using javascript
            window.setTimeout("countdown()", 1000);
        }
    }

    // Run countdown function
    countdown();

</script>
2个回答

此模态组件似乎在 iframe 内显示内容,因此要跳出该 iframe 的父级或顶部窗口实例:

parent.location.href = ...

top.location.href = ...

parent 指的是 iframe 正上方的窗口实例, top 始终是最外层的窗口实例。如果您只有一个“级别”的 iframe,则两者都将引用同一对象,如果是嵌套框架,则情况会有所不同。

04FS
2019-04-17

尝试使用 window.opener.location="example.com";

这将在父窗口中打开 URL。

Dinesh Reddy Kancharla
2019-04-16