Javascript window.close()不工作(最初通过JS/JQuery打开)

Javascript window.close()不工作(最初通过JS/JQuery打开),javascript,jquery,redirect,instagram-api,window.open,Javascript,Jquery,Redirect,Instagram Api,Window.open,我使用的是Instagram API,注销的唯一方法是通过链接,该链接将用户重定向到Instagram页面(如果有人知道其他方法,请告诉我)。但是,我想将用户重定向到我自己的页面。(我以前在post中尝试过这样做的方法。img/iframe将附加用户并将其重定向到我的页面,但用户仍已登录。) 这是我当前使用的代码: $('.logout').on("click", function () { window.open('https://instagram.com/accounts/log

我使用的是Instagram API,注销的唯一方法是通过链接,该链接将用户重定向到Instagram页面(如果有人知道其他方法,请告诉我)。但是,我想将用户重定向到我自己的页面。(我以前在post中尝试过这样做的方法。
img
/
iframe
将附加用户并将其重定向到我的页面,但用户仍已登录。) 这是我当前使用的代码:

$('.logout').on("click", function () {
     window.open('https://instagram.com/accounts/logout/'); 
     window.close();
     window.location.replace("logout-page.html");
}

Instagram页面在新选项卡中成功打开并注销用户,而我的页面重定向到注销页面,但我希望Instagram注销页面在打开后自行关闭。其他人说,
window.close()
只有在使用
window.open()
通过脚本打开时才起作用,我正在这样做,但它仍然不起作用。我还尝试了
window.open(“,self).close()
和其他类似的方法,但这些方法对我也不起作用。

要关闭打开的窗口,必须将其定义为对象。

setTimeout
延迟关闭将允许它完全打开url。
如果需要,调整延迟。。。但是1秒钟应该可以

myWindow = window.open('https://instagram.com/accounts/logout/');

setTimeout(function(){
    myWindow.close();
},1000);
编辑
似乎无法“隐藏”弹出窗口…
我发现一个方法是在,但它需要添加一个脚本在弹出页面


使用上面的脚本,弹出窗口将作为一个新选项卡打开。。。并保持打开状态仅1秒钟。这是我能说的最好的了。。。直到我发现您可以尝试。

window.open
返回已打开的新窗口的对象。要修改此新窗口,必须使用返回的对象,如:

new_window = window.open("url");
new_window.close();
无论如何,这不是一个好的解决方案,因为您不知道新打开的窗口是否已成功加载页面或已完成加载

我建议只在新窗口中打开注销页面,并重定向当前页面,如下所示:

my_window = window.open("url", "Window-Name", "height=200,width=200");
document.location = "your_url"; //redirects the current page...`

只需在DOM中附加的隐藏iframe中打开url。以下是jQuery代码:

$('#content').append('<div style="display:none"><iframe src="https://instagram.com/accounts/logout/" width="0" height="0"></iframe></div>');
$('#content')。追加('');

这就是我在中实现注销并允许在应用程序中使用多个帐户登录的方法,效果很好。

我希望Instagram注销页面关闭“那么,您想关闭新打开的窗口吗?将其存储在变量中,并将该变量用作
close()
的上下文。当前您正在尝试关闭当前窗口,即执行脚本的窗口。我也尝试过,但也没有成功??试试a。新的标签还没合上。你在我的小提琴上合上了吗?如果没有,请在关闭呼叫之前立即添加
console.log(弹出)
。然后检查控制台,如果您发现
null
未定义
,您的浏览器选项正在阻止关闭。我已经尝试了这些选项,但它们不起作用,不幸的是我延迟更新了我的答案。。。也许你需要保持窗口长时间打开以加载页面
left=-1000px,top=-1000px
似乎不起作用,因为窗口仍然可见,再次编辑。。。看一看。我已经尝试了第二个链接,它成功地附加了
img
/
iframe
,并在不打开任何新窗口/选项卡的情况下重定向用户,但无法注销用户。太好了,它可以工作了!你知道有没有办法在原来的窗口后面打开新窗口?这样用户就不会看到一个窗口突然弹出并消失。是的!阅读此处您可以将新窗口定位到视口之外。。。像
left=“-1000px”,top=“-1000px”
实际上显然
left
top
不允许为负数。我在我的应用程序中尝试了它,它没有抛出错误,但窗口仍然可见。你知道另一种方法吗?这就是我在上面链接的另一篇帖子所建议的,它对我不起作用。在控制台中trows这个错误:
拒绝显示'https://www.instagram.com/'在帧中,因为它将'X-frame-Options'设置为'SAMEORIGIN'。
。。。也许不是在所有的浏览器中。。。但在Chrome中,我知道,但它确实注销了,会抛出错误,因为url稍后会重定向到“instagram.com”,并且会被“X-frame-Options”阻止,但注销url会打开并执行注销任务。是的,通过允许instagram重定向,有多种成功的方法可以简单地注销。我还可以使用蛮力方法,添加锚标记,并将其href设置为注销链接;然而,我的问题的重点是重定向到我自己的页面。我已经多次检查/重试了上述方法,并且有不同的变化,但都失败了。我已经用Luke发布的代码解决了这个问题,但是谢谢你的输入。