子 window 事件未启动
Child window events not firing up
我正在尝试获取访问令牌以授权某些 api 对 GOG api 的调用。
问题是在文档中,它指出我需要打开一个 window 指向 auth.gog.com/auth 并带有一些参数,并且在正确登录后重定向将完成 https://embed.gog.com/on_login_success .
所以当我的 React 应用程序启动时,我打开一个新的 window 然后注册到 onload 事件(只是测试)并且永远不会调用 onload 事件。
function App() {
return (
<div className="App">
<button onClick={_clickHandler}>CLICK HERE</button>
</div>
);
function _clickHandler()
{
let slaveWindow:(Window | null) = window.open("https://auth.gog.com/auth?client_id=46899977096215655&layout=client2&redirect_uri=https://embed.gog.com/on_login_success?origin=client&response_type=code");
if(slaveWindow!=null)
{
/*
console.log("--------> "+slaveWindow);
slaveWindow?.addEventListener("load", (ev:Event) => {
console.log("Loaded!");
return null;
});
*/
slaveWindow.onload = ()=>{alert("Child window has been loaded!")};
}
}
除非您的来源与 https://auth.gog.com/
相同,否则您将无法访问 slaveWindow
对象上的 onload 事件或任何 window 属性和方法。
这是因为浏览器对使用 window.open 打开的 windows 执行同源策略。
https://developer.mozilla.org/en-US/docs/Web/API/Window/open
我正在尝试获取访问令牌以授权某些 api 对 GOG api 的调用。
问题是在文档中,它指出我需要打开一个 window 指向 auth.gog.com/auth 并带有一些参数,并且在正确登录后重定向将完成 https://embed.gog.com/on_login_success .
所以当我的 React 应用程序启动时,我打开一个新的 window 然后注册到 onload 事件(只是测试)并且永远不会调用 onload 事件。
function App() {
return (
<div className="App">
<button onClick={_clickHandler}>CLICK HERE</button>
</div>
);
function _clickHandler()
{
let slaveWindow:(Window | null) = window.open("https://auth.gog.com/auth?client_id=46899977096215655&layout=client2&redirect_uri=https://embed.gog.com/on_login_success?origin=client&response_type=code");
if(slaveWindow!=null)
{
/*
console.log("--------> "+slaveWindow);
slaveWindow?.addEventListener("load", (ev:Event) => {
console.log("Loaded!");
return null;
});
*/
slaveWindow.onload = ()=>{alert("Child window has been loaded!")};
}
}
除非您的来源与 https://auth.gog.com/
相同,否则您将无法访问 slaveWindow
对象上的 onload 事件或任何 window 属性和方法。
这是因为浏览器对使用 window.open 打开的 windows 执行同源策略。
https://developer.mozilla.org/en-US/docs/Web/API/Window/open