gpt4 book ai didi

javascript - 如何检查我是否有权访问 window.opener?

转载 作者:行者123 更新时间:2023-11-30 10:43:13 26 4
gpt4 key购买 nike

如何检查我是否有权访问 window.opener?

如果我在新窗口中从与我的页面无关的文件中打开我的页面,我会收到错误消息(访问被拒绝)。

代码:

if (window.opener) {
if (window.opener.document.getElementById('myHidden') !== "undefined") {
if (window.opener.document.getElementById('myHidden').value == "1" && $("#inputXYZ").val() != "1") {

2 行发生错误。但前提是我从随机页面打开页面(当然没有名为“myHidden”的输入字段)。如果我从具有此类元素的“有效”页面打开该页面,它就可以正常工作。

最佳答案

您正在将元素实例与 string "undefined" 进行比较,并且您没有检查是否 window.opener.document存在(我不知道你是否必须,但很容易添加)。你的意思可能是:

// Note: Still not right, see below
if (typeof window.opener.document.getElementById('myHidden') !== "undefined")

...除了这仍然不正确,因为 getElementById 在没有匹配元素时返回 null(不是 undefined)。

这是我的做法:

var input = window.opener &&
window.opener.document &&
window.opener.document.getElementById('myHidden');
var value = input && input.value;
if (value != "1") {
// Do something
}

这使用了非常强大的 && 运算符(与 the curiously-powerful || operator 是近亲)。如果 window.openerwindow.opener.document 为“falsey”(nullundefined0""NaN 或者,当然,false - 最后四个不适用),导致 inputundefined。如果 input 为假,则第二个赋值将短路,导致 valueundefinedundefined != "1", 所以...

关于javascript - 如何检查我是否有权访问 window.opener?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9891461/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com