Window.open()没有生效

Window.open()没有生效

引用博客地址
http://www.cnblogs.com/rainbowzc/p/3603209.html

最近在使用js的时候,实现的一个功能是点击按钮之后请求后台,然后返回一个图片的地址。
我尝试使用window.open()在生成图片之后自动打开一个标签
但是似乎没有起作用。
检查了好久,发现返回的也正确,js也没有报错。
查阅了引用的博客之后,发现似乎是因为被浏览器拦截了

下面是引用博客解决问题的地方

window.open是javascript函数,该函数的作用是打开一个新窗口或这改变原来的窗口,如果你直接在js中调用window.open()函数去打开一个新窗口,浏览器会拦截你,那么如何避免呢,感兴趣的朋友可以了解下本文或许对你学习有所帮助

window.open是javascript函数,该函数的作用是打开一个新窗口或这改变原来的窗口,不过一般用来的是打开新窗口,因为修改原来的网页地址,可以有另一个函数,那就是window.location,他可以重定向网页地址,使网页跳转到另一个页面。

我 现在要说的是window.open函数的几个使用策略,一般情况下,如果你直接在js中调用window.open()函数去打开一个新窗口,浏览器会 拦截你,认为你将弹出广告等用户不想得到的窗体,所以如果不想让浏览器拦截你,你可以将这个函数改为用户点击时触发,这样浏览器就认为是用户想访问这个页 面,而不是你直接弹出给用户。

所以常用的方法就是在超链接里加入onclick事件,如这样用户点击这个超链接,浏览器会认为它是打开一个新的链接,所以就不会拦 截。

我的解决办法

自然,我也是仅仅将URL送到一个button上面,然后再点击
但是觉得,这个交互有点难受,还必须点一下新的按钮
这也好办,让浏览器帮你点击

$("#linkHolder").click();

同时,新生成的一个button看起来挺烦的
那就将它的opacity设置为0,就没问题啦

如下,点击的时候会触发的函数

function openURL(obj){
    window.open(obj.name,'_blank');
    $(obj).css("opacity",0);
    $(obj).attr("disabled",true);
}

注意window.open()如果直接加链接的话不是打开一个新的标签,如果想让浏览器打开一个新的标签的话可以加上第二个参数


03-23 16:43
广告拦截器好强….
Window.open()没有生效_第1张图片
如果写自动点击还是会被拦截….还是乖乖手动点击吧

你可能感兴趣的:(前端开发,JS开发)