gpt4 book ai didi

javascript - 如何从 window.opener 执行不暴露于窗口的函数?

转载 作者:行者123 更新时间:2023-11-28 09:16:31 25 4
gpt4 key购买 nike

我目前正在尝试构建像 Mozilla Persona 这样的东西。到目前为止我已经构建了这个:

(function()
{
var loginFailedCallback = function(){};

var loginSuccessCallback = function(){};

var MyId = {
Request: function(fail, success)
{
loginFailedCallback = fail;
loginSuccessCallback= success;

window.open("oauth.html", 'test', "width=650,height=280,location=0,menubar=0,resizable=0,scrollbars=0,status=0,toolbar=0");
}
};

window.MyId = MyId;
})();

如您所见,我创建了一个对象,网站所有者可以使用该对象向用户请求身份验证过程。这两个回调不会暴露给全局命名空间,因此它们无法被网站所有者代码(或控制台)触发。

但是存在问题:如何从弹出窗口执行这些回调?我知道我可以使用 window.opener 访问 opener 窗口。但由于回调没有暴露给窗口对象,我能做什么?

最佳答案

您无法从弹出窗口执行它。

您必须将其公开到全局范围。例如,为您的创建一个全局对象并将其附加到该对象。

然后您需要以某种方式检查函数的执行位置。您将通过检查而不是不公开来禁止网站所有者触发该功能。

关于javascript - 如何从 window.opener 执行不暴露于窗口的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15572818/

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