在JavaScript中打开新的浏览器窗口而不激活它

时间:2009-10-09 05:52:21

标签: javascript firefox popup

我有一些JavaScript进行AJAX调用,如果调用失败,则会打开一个新窗口(Firefox中的选项卡)并在该窗口中显示来自服务器的响应。这对于调试非常方便,因为错误通常来自Pylons,因此它是一个完整的HTML页面。

唯一的问题是新标签变为活动标签,这会使普通用户感到困惑。有没有办法打开标签/窗口,但没有让它激活,即。保持当前活动窗口?

我的代码目前看起来像这样:

    errorWindow = window.open("", "TCerrorWindow")
    if (errorWindow)
        errorWindow.document.write(xhr.responseText);

2 个答案:

答案 0 :(得分:5)

您可以在之后调用errorWindow.blur(); window.focus();,强制浏览器将焦点返回到上一个窗口。

您尝试实现的效果通常称为pop-under window

答案 1 :(得分:3)

AFAIK这是不可能的,作为针对pop-under windows的安全措施。出于调试目的,您可以

  • 使用Firebug(使用方便的控制台,您可以从代码中输出自己的日志消息)
  • 在页面上创建一个调试层(div),在出现错误的情况下输出错误消息