4

我在 firebug 上不断收到此错误 - > TypeError: window.open is not a function

代码:

    $(document).ready(function()
{
    $('.div').click(function()
    {
        var link = $(this).data('link');
        window.open(link);
    });
});

那个功能不应该起作用吗?

4

6 回答 6

11

迟到了,但对于所有其他编码员!如果您有一个名为“open”的全局变量,例如“open = true;” 或“var open = true”或类似的东西,那么函数“open()”将不再工作。

于 2016-04-26T08:12:36.730 回答
2

尽管您的问题并不完全清楚,但值window.open不是只读的,因此可以由其他代码更改,例如:

window.open = false;
// ...
window.open('something') // error: window.open is not a function

如果您知道页面上加载了哪些脚本,这应该不难做到,只需搜索与window.open.

于 2013-02-22T09:08:22.373 回答
1

尝试这个

window.open("https://www.google.com/", "_blank");

这段代码对我来说很好用。如果这不起作用,请确保您不应该声明以“open”命名的变量或函数。(我曾经遇到过这个问题。)

于 2018-06-27T10:11:31.853 回答
0

我不知道为什么,但下面的变化在你的小提琴中对我有用。

改变

var link = $(this).attr('data-link');
window.open(link); 
于 2013-02-22T09:02:36.307 回答
0

如果你有一个名为“window”或“open”的局部变量,那么函数“window.open()”将不再工作。

于 2020-05-09T12:07:12.003 回答
0

如果您在 chrome 控制台中尝试过并发现它不起作用,请尝试将其作为页面预加载的脚本。它在我的情况下有效。

于 2020-01-07T08:13:59.303 回答