问题标签 [window.opener]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1206 浏览

javascript - RegisterStartupScript 导致 window.opener 为空

我无法让 window.opener 值在子弹出窗口之间传输。此代码在 IE 8 和 order 中工作,但在 IE 9 和更高版本中停止工作。任何输入表示赞赏。

用另一种方式解释。我姐姐知道我是她的兄弟,但不相信我会告诉她我们的父母是谁。

处理流程:
父窗口(主窗体)-> 打开弹出窗口(PopUp 1)
用户单击 PopUp 1 上的按钮以打开 PopUp 2。
PopUp 2 打开:
    它从 PopUp 1 中提取数据然后关闭 PopUp 1
用户单击按钮(保存) PopUp
2。PopUp 2 刷新原始父“主窗体”上的数据。然后自行关闭。

最后一步是不影响 IE 9 的步骤。我创建了下面的示例以显示该功能使用纯 JavaScript 工作,但在回发并使用 RegisterStartupScript 调用 JavaScript 函数时失败。我们使用 RegisterStartupScript 是因为表单的保存操作会根据用户的输入产生许多不同的结果。
所有页面都在同一个域中。

主窗体.aspx

PopUp1.aspx


PopUp2.aspx


PopUp2.aspx.vb

0 投票
1 回答
1583 浏览

javascript - 如何关闭弹出窗口并重定向到 iframe?

我有一个包含 iframe 的页面,并且 iframe 打开一个弹出窗口。

提交表单后,此弹出窗口应关闭并重新加载打开它的 iframe。

弹出窗口关闭并通过这种方式重定向:

当我直接从 iframe 工作时,这对我有用,但是当我从包含 iframe 的页面执行此操作时,iframe 不会刷新。

那么...在这种情况下如何重新加载 iframe?

0 投票
2 回答
285 浏览

javascript - IE 在使用 window.opener 调用 GWT 类中的方法时检测到 XSS

我有一个打开第二个浏览器窗口的 GWT 应用程序。我希望我的第二个窗口能够在第一个窗口的入口点内调用方法。

下面的代码示例在生产(Web)模式下工作,但是当我尝试在托管模式下运行它时,IE 会检测到 XSS 并用单个“#”覆盖页面以防止检测到的攻击。我猜这是因为我的 GWT 代码服务器在 localhost 上运行,而我正在测试的应用程序部署在虚拟机上。

更新:IE XSS 过滤似乎是零星的。有时我可以让页面加载。但过了一会儿,它又开始过滤了。

关于如何让它在托管模式下工作的任何想法?或者有没有更好的方法来使用 GWT 进行跨窗口通信?

0 投票
1 回答
403 浏览

php - 登录后关闭孩子并使用登录数据重新加载父母

现在我window.open()在用户点击和弹出窗口显示登录表单时使用。为此我使用了“:

child.php 页面显示在弹出窗口中,但问题是,当我登录并将页面重定向到父页面并重新加载时,它仍然显示没有用户登录。我在子页面上使用了这些

是否可以使用登录详细信息重新加载父页面。

0 投票
1 回答
1358 浏览

javascript - 如何为 window.opener() 函数设置宽度和高度?

有一个社交登录 wordpress 插件,在验证来自社交网站(facebook、google 等)的登录时会产生一个大的弹出窗口

我想让弹出窗口更小,但无法弄清楚。产生弹出窗口的代码是:

如何设置此弹出窗口的宽度和高度?

提前致谢!

0 投票
0 回答
524 浏览

oauth - 在 IE 10 中使用 oauth 进行 google 授权后,获取 window.opener 未定义

父页面:我有一个带有按钮的页面,当我单击按钮时,它会打开带有 URL googleoauth.aspx 的新窗口,使用 (window.open() in java script)。

我在 Google 控制台中注册了我的 googleoauth.aspx 页面(使用 API 访问 Google 数据)作为重定向 URL

子页面(googleoauth.aspx):我有一个按钮可以授权 Google 帐户使用 API 访问 Google 文档。当我单击按钮时,它会在同一窗口中打开 Google 登录页面,成功登录后,它会重定向到带有令牌的 googleoauth.aspx 页面。在这里,我使用 javascript (window.opener.settoken(token);) 将此令牌传递给父函数,并且在我关闭此窗口 (window.close()) 之后。这在 chrome 和 Firefox 中运行良好。但在 IE 中,在 window.opener 处未定义。像window.open 一样的问题总是以 true 关闭

0 投票
2 回答
3196 浏览

javascript - 如何断开 JavaScript 弹出窗口与开启器的连接

我正在从我的主页打开一个弹出窗口,代码如下:

这很好用,但我的问题是弹出窗口中加载的文档有权更改打开器窗口的位置。这甚至在弹出窗口中的文档来自不同域时也有效。它没有读取位置的权限,但可以更改位置。我不想要那个。我希望弹出窗口与我的主页完全断开。

即使没有 JavaScript,它也不起作用。当我使用该target="_blank"属性在新选项卡中打开另一个页面时,仍然允许此选项卡导航到opener窗口并更改其位置:

这是打开的文档中不应允许的代码:

你可以在这里看到一个现场演示。单击两个链接之一以在弹出窗口或新选项卡中打开另一个页面,然后在打开器窗口中加载第三个页面。这就是我试图阻止的。

有什么技巧可以用来断开打开器窗口和打开的窗口之间的连接吗?理想情况下,打开的窗口根本不应该知道它是由任何其他窗口打开的。

0 投票
0 回答
212 浏览

javascript - 从数组传递 YouTube 播放器参数

我有一个主窗口,它通过 window.open 打开一个子窗口,其唯一目的是充当“弹出窗口”YouTube 播放器。子窗口页面使用 YouTube 开发人员页面的 iframe 代码从此处填充:

我要传递的参数是 YT 播放器函数中的 videoID 代码。

我可以直接将代码放在单引号中,并且窗口打开/播放有效。
我可以将代码分配给一个变量,然后分配 videoID = 变量,这样就可以了。
我可以使用变量通过 window.opener 方法传递代码,这很有效。

但是 - 如果我将 ID 代码列表存储在字符串数组中,代码似乎可以正确地从父级或子级(我尝试将其存储在两个页面上)一直传递到 videoID 参数 - 但 YTplayer加载到黑屏后总是指示“错误”。代码在到达函数之前是否分配给变量都没有关系,如果它来自数组,它将在播放器中不起作用。这是数组声明,以防我遗漏了什么。我对 Java 数组的经验是有限的,而且它们似乎对用户不友好......

我验证了存储在数组中的信息以及干预 LOOKS 的任何变量是否正确,方法是停用该函数,然后在屏幕上执行 document.write 以便我可以看到这些值。据我所知,这一切显然都是正确的,而且绝对行不通。我想解决这个问题,因为在图库中选择缩略图后从数组中调用正确的字符串似乎比尝试处理大量不相关的变量更容易。

这是与解析数组有关的时间问题吗?

0 投票
1 回答
1790 浏览

javascript - 弹出窗口与原始开启器之间的通信

我正在尝试在现有网站上构建集成支付解决方案。

我有一个弹出窗口,当我提交购物车内容表单时,它会打开第三方支付处理器页面。

付款过程完成后,我希望能够与原始“开瓶器”页面进行通信。

我的问题是支付处理器端有 2 或 3 个阶段,一旦完成,它们允许您加载自定义 URL。

我想加载一个空白页面,该页面将简单地调用一个关闭弹出窗口并将原始主页移动到另一个 URL 的 javascript 函数。

我曾尝试使用 Window.opener 之类的 javscript 函数来引用主页,但这不起作用,因为主页最初打开的窗口不再存在,并且成功页面是该原始页面的后代。

鉴于这些限制,我如何在弹出窗口和原始主页之间进行通信?

0 投票
2 回答
2010 浏览

javascript - 将弹出窗口中的数据返回给父级(SMARTY)

我的弹出窗口从用户可以选择的数据库中获取数据。现在有人可以解释一下我如何将提交的数据(数组)从我的弹出窗口返回到我的父表单,然后返回到“父 PHP”?:X

我已经找到了一种使用方法

或者

但我真的不知道如何处理它以及如何让它为我工作。

父表格:

父母中的弹出代码:

选择数据后,他应该保存(提交)并关闭弹出窗口。现在数据不应该以某种方式直接显示在 PARENT 中。我只需要将它存储在某个地方并能够在我的 PARENTS PHP 中操作数据。我尝试了很多方法,例如保存会话或包含在我的 PARENTS PHP 中,并尝试使用 $_POST 获取数据。但没有任何效果。

也许还有别的东西然后window.opener我真的不在乎我只是想要我的数据以某种方式:D。