jQuery window.open无法正常工作

时间:2014-09-10 12:03:25

标签: javascript jquery ajax

我的代码非常简单

$('.opennewwindow').click(function(e) {
    e.preventDefault();
    window.open("http://www.stackoverflow.com")
    /*alert('its works');*/
});

<button class="opennewwindow" value="somevalue">Open new window!</button>

不幸的是,代码不起作用(函数调用,但不是open.window)。错误不会出现任何问题。

我也是这样尝试的:

$('.opennewwindow').click(function(e) {
    e.preventDefault();
    myWin = window.open("http://www.stackoverflow.com");
    myWin.focus();
});

并跟随错误TypeError: myWin is undefined

我使用了$(document).ready()等。但效果相同。

线索是我的网站上有一个ajax脚本。此按钮和功能也由ajax加载。

任何人都知道为什么这不起作用?

3 个答案:

答案 0 :(得分:4)

您的第一个代码正常运作。 见http://jsfiddle.net/69a1cL1v/

它可能是一个弹出窗口阻止程序。

$('.opennewwindow').click(function(e) {
    e.preventDefault();
    window.open("http://www.stackoverflow.com")
    /*alert('its works');*/
});

答案 1 :(得分:2)

哦,伙计我做了什么!

我只是(在我的自定义jquery脚本中)覆盖函数&#34;打开&#34; ...我不知道为什么我这样做(它是未使用的函数)。对不起,我很抱歉。

答案 2 :(得分:0)

工具&gt;选项,内容区域,&#34;高级&#34; &#34;启用JavaScript&#34;右侧的按钮应该给你允许这种行为的选项。如果您使用的是Linux,导航可能会略有不同。

注意,通常认为最佳做法是允许用户选择应该关注的窗口。

这是关于:配置你指的是:dom.disable_window_flip

在FF中,我可以通过向window.open提供窗口名称和选项参数,然后调用焦点来打开一个具有焦点的新窗口。

var wi = window.open('http://www.stackoverflow.com', 'window_name', 'height=200,width=200');
wi.focus();

对于Chrome支持,您必须查看:Google Chrome "window.open" workaround?