Javascript Safari阻止弹出窗口

Javascript Safari阻止弹出窗口,javascript,html,ios,iphone,twitter,Javascript,Html,Ios,Iphone,Twitter,我有一个twitter登录,大家都知道谷歌和Facebook有自己的脚本来打开登录弹出窗口,它甚至在Safari上也能工作,但twitter没有。因此,我们实现了自己的,我们面临的问题是,IOS设备正在阻止弹出窗口打开: window.open(url, '_blank', 'height=400,width=800,left=250,top=100,resizable=yes', true); 我还尝试在阅读()之后创建锚定标记: 然后我们将url添加到hrefthis.twitter

我有一个twitter登录,大家都知道谷歌和Facebook有自己的脚本来打开登录弹出窗口,它甚至在Safari上也能工作,但twitter没有。因此,我们实现了自己的,我们面临的问题是,IOS设备正在阻止弹出窗口打开:

 window.open(url, '_blank', 'height=400,width=800,left=250,top=100,resizable=yes', true);
我还尝试在阅读()之后创建锚定标记:


然后我们将url添加到href
this.twitterPopupLink.setAttribute('href',url)
,然后
document.querySelector(“#js_utwitter_upopup-link”)。单击()
,但在IOS上它甚至不会以这种方式打开新页面

测试人员说,iPad上的弹出窗口是打开的,但使用IOS模拟器,它并没有在iPad上为我打开。它肯定不会在iPhone上打开弹出窗口

在IOS上,即使这样也不会打开新页面

对。弹出窗口拦截器的作用是防止弹出窗口。你能想象到的任何解决方法,他们可能也已经想象并阻止了


通常,您只能在一个场景中打开弹出窗口-在用户启动单击后立即打开。通过JavaScript触发单击不会绕过此问题。

谢谢您的回答!我仍然理解,Facebook和Google在没有用户额外点击的情况下解决了这个问题。Facebook和Google的OAuth登录按钮都需要用户在WebSDK中点击。如果你指的是iOS SDK,它们将在本机触发,而不是在Safari中。我们还实现了Facebook和Google登录,这两个额外的按钮,但一旦你点击按钮,弹出窗口就会打开,现在看来,对于twitter,我需要让用户点击两次(至少在iOS上)。不,你不需要两次点击。不要再假装点击了。制作一个按钮,该按钮有一个调用
窗口的
onclick
。打开
code。twitter按钮是一个web组件,组件监听点击,点击时调用后端,使用消费者API键(存储在配置文件中)获取twitter令牌。收到响应后,客户端尝试使用带有参数的twitter URL打开twitter弹出窗口。
 <a id="js__twitter__popup-link" target="_blank" style="visibility: hidden;"></a>