关于打开/弹出新窗口的浏览器警报

时间:2011-10-03 11:15:31

标签: javascript popup alert

我有一个链接,点击后,浏览器将打开一个新窗口。这是该链接上的click事件的代码:

    var clickView = function(){
                    window.open('/client/item/show/' +  itemID);
                    return false;
                };

我还有另一个函数,从ajax调用中读取url并在新窗口中打开它。

            if (json.data && json.data.URL)
            {
                    if (me.urlTarget==='_self'){
                            //use the self window to open the URL
                            window.location.href =json.data.URL;
                    } else{
                            //use new window to open the url.
                            window.open(json.data.URL);
                    }

            }

对于第一个功能(clickView),浏览器(IE7 / 8和Firefox)将打开一个新选项卡,而不会向用户发出任何警告。对于第二个函数(从json.data.URL读取url),IE和Firefox都会显示警告消息并阻止新窗口,直到用户同意警告。在这两个函数中,开放URL都是相同的。

我想知道为什么会有差异,是否有可能使它们表现一致?

2 个答案:

答案 0 :(得分:1)

答案似乎在这里: open new window without the browser giving warning that is a popup

总结:在看似随机的时间调用window.open()会导致浏览器启动警告/提示。作为链接点击的结果调用window.open()可以正常工作。

答案 1 :(得分:0)

第二个实例可能会生成警告,因为它是绝对的URL,而不是相对的URL?

(无论哪种方式,打开新的浏览器窗口都是魔鬼的工作)。