作者:贾章鱼_977 | 来源:互联网 | 2023-10-11 20:06
题目有时候在开辟营业时,因为产物体验,要求自动翻开新窗口,而不愿望用户手动点击。直接在代码中实行:window.open(http:www.baidu.com)是会被浏览器阻拦的,
题目
有时候在开辟营业时,因为产物体验,要求自动翻开新窗口,而不愿望用户手动点击。
直接在代码中实行:
window.open('http://www.baidu.com')
是会被浏览器阻拦的,浏览器是默许屏障弹出窗口,然则是用户手动触发,就不会阻拦,如果是顺序自动实行,则会阻拦。
处理
那末依据上述划定规矩,那就在用户有点击行动时翻开这个窗口,伪代码以下:
test
document.getElementById('blank').Onclick=function(){
window.open(...)
}
示例在此
不过,这体式格局在异步编程中照样会被阻拦,所以在用户点击发送要求的同时翻开一个新窗口,然后在回调函数中修正新窗口的地点,伪代码以下:
test
document.getElementById('blank').Onclick=function(){
const newwin = window.open('about:blank');
$.ajax({
type: 'post',
url: 'xxxx',
data: {...},
}).then((data)=>{
...
newwin.location.href = data.href; // 挪用location
})