我正在学习JS,偶然发现了这个window.open()
功能.当我测试它时,似乎像Chrome这样的主流浏览器会阻止弹出窗口.对我而言,主要功能open()
已不再有用.那么这个功能在目前的实践中仍然有用吗?
我认为Chrome只会window.open
在没有用户操作之前阻止.例如,如果您有一个onclick
属性映射到函数的元素...
function clickedButton() { window.open(...); }
这会奏效.虽然这....
function clickedButton(){ setTimeout(function(){ window.open(...); }) }
不会.
所以是的,如果您能够以弹出窗口仅响应用户操作的方式设置应用程序,它仍然很有用.
虽然由于Jonathan.Brink提到的原因,通常打开新窗口是一个坏主意,但我之前使用它们进行身份验证.例如,通过Facebook登录需要使用其URL(iframe不起作用)打开新选项卡或新窗口.当它再次回到我的网站回调时,我关闭窗口,并用新的登录信息更新(响应)网站.关闭新标签感觉......很奇怪.