首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >window.open()在第二次调用时返回未定义的或空的

window.open()在第二次调用时返回未定义的或空的
EN

Stack Overflow用户
提问于 2009-06-06 18:50:39
回答 2查看 22.2K关注 0票数 4

我有以下情况:

我点击一个链接:打开一个名为“弹出”的弹出窗口,在其中加载pdf (在IE6中)。

在不关闭弹出窗口的情况下,我再次单击该链接,该链接将重新打开弹出窗口中的pdf,但相反,引发的javascript错误:成员未找到

用于打开弹出窗口的javascript函数是:

代码语言:javascript
运行
复制
function openWindow(url, name, props) {
  var windowRef = window.open(url, name, props);
  if (!windowRef.opener) {
    windowRef.opener = self;
  }
  windowRef.focus(); //error at this line, windowRef must be null
  return windowRef;
}

问:我如何避免每次打开一个新的弹出窗口?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-06-11 18:42:48

这是互联网上每个人都在使用的攻击:

代码语言:javascript
运行
复制
function openWindow(url, name, props) {
  if(/*@cc_on!@*/false){ //do this only in IE
    var windowRef = window.open("", name, props);
    windowRef.close();
  }
  var windowRef = window.open(url, name, props);
  if (!windowRef.opener) {
    windowRef.opener = self;
  }
  windowRef.focus();
  return windowRef;
}
票数 7
EN

Stack Overflow用户

发布于 2009-06-06 19:15:40

尝试在函数openWindow()之外使用全局var openWindow。就像这样:

代码语言:javascript
运行
复制
var WindowRef = null;

function openWindow(url, name, props) {
  if(WindowRef == null){
    WindowRef = window.open(url, name, props)
  }
  else{
    WindowRef.document.location = url
  }
  if (!WindowRef.opener) {
    WindowRef.opener = self;
  }
  WindowRef.focus();
  return WindowRef;
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/960293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档