-1

我知道这个问题已经被问过很多次了,但是尽管搜索了 google 和 stackoverflow 并进行了各种尝试,但我还是找不到解决问题的方法。

这是我的 JS:

    function Redirect(id)
    {
        window.open("go.php?id=" + id, "_blank");
    }

    function LinkPop(id)
    {           
        xmlObj = new XMLHttpRequest();
        xmlObj.open("GET", "pop.php?id=" + id, false);
        xmlObj.send();

        document.getElementById(id).style.fontSize = xmlObj.responseText + "px";
        document.getElementById(id).title = "Clicked " + (xmlObj.responseText - 18) + " times";

        window.setTimeout(function(){Redirect(id);}, 2000);
    }

除了 2 秒延迟和打开新页面外,一切正常。如您所见,我尝试了一个没有帮助的关闭。我希望我错过了一些非常基本的东西......

谢谢你的帮助。

4

1 回答 1

1

您正在尝试打开一个弹出窗口。由于过去滥用此功能,所有现代浏览器都有弹出窗口阻止程序,除非在受限情况下,否则会阻止您这样做。

特别是,浏览器通常仅在直接响应与网页的交互(例如点击)时才允许弹出窗口。超时事件不是交互,即使它是为响应较早的交互而触发的,因此您将无法打开默认设置的窗口。

您可以立即打开弹出窗口(您可以尝试将其作为弹出窗口打开并稍后将其聚焦以将其带到前面,尽管这并不总是可靠的)。或者,可能更好的是,忘记弹出窗口,只在当前页面上做一个简单的重定向。

于 2012-07-07T14:42:44.050 回答