window.open无效,因为新选项卡未定义

时间:2016-06-29 10:22:29

标签: javascript

newtab = window.open('about:blank','_newtab' );
newtab.location.replace = ('http://www.yahoo.com/')

我需要打开一个包含不同域的新标签页。但发生以下错误

instance_controller.js:184 Uncaught TypeError: Cannot read property 'location' of undefined

为什么会这样?请给出一个解决方案。

5 个答案:

答案 0 :(得分:0)

试试这个:



newtab = window.open('about:blank', '_newtab');

newtab.location = ('http://www.yahoo.com/');




答案 1 :(得分:0)

我相信这种情况正在发生,因为window.open函数已经执行并从父作用域中分离出来。如果我错了,请纠正我。

为什么不使用window.open("http://www.yahoo.com/", "_blank");

答案 2 :(得分:0)

newtab=window.open('http://www.yahoo.com/','_newtab' );

这会有效,但弹出窗口阻止程序会阻止它。

答案 3 :(得分:0)

JSFiddledemo

var url = "http://www.example.com";
window.open(url, '_blank');

答案 4 :(得分:0)

根据此链接:https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy问题是您无法以编程方式与其他域中的网页进行交互。您确实得到了一个返回窗口对象的引用 - 但由于它是跨域的,因此您将获得一个非常条带化的功能集。

正如其他人所说,你应该在调用window.open函数时输入要在弹出窗口中加载的页面的URL。