我是靠谱客的博主 阳光夏天,最近开发中收集的这篇文章主要介绍window.open()会被浏览器拦截?,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

最近项目用到window.open(),打开新页面 有时候会被拦截?

  1. 直接手动触发不会被拦截;
  2. 间接触发会被拦截;原因:=》浏览器检测到非用户操作产生的新弹出窗口,会对其进行阻止。因为浏览器认为这是一个广告。window.open()放在ajax的回调函数中执行会导致被拦截。

解决方案:
手动触发handleManage,直接通过window.open()打开空白页面,赋值loading状态,接口返回成功后更换href。


import Loading from './loading.js';
// 手动编写loading样式,导出字符串;
handleManage(item) {
var newWin = window.open('about:blank');
newWin.document.body.innerHTML = Loading;
getUrlService(item.id).then(({ data: result }) => {
if (result.success) {
newWin.location.href = result.data;
}
});
},

最后

以上就是阳光夏天为你收集整理的window.open()会被浏览器拦截?的全部内容,希望文章能够帮你解决window.open()会被浏览器拦截?所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部