在新窗口中打开一个Div-点击按钮



我正在尝试在新窗口中打开一个Div,我尝试使用window.open,它的工作原理。

html:

<div id="pass">pass this to the new window</div>
<a href="#" onclick="openWin()">click</a>

JS:

  function openWin() {
    var divText = document.getElementById("pass").outerHTML;
    var myWindow = window.open('', '', 'width=200,height=100');
    var doc = myWindow.document;
    doc.open();
    doc.write(divText);
    doc.close();
  }

http://jsfiddle.net/kzyju/

essue :如果窗口已经打开,当我再次单击按钮时,它不应再次打开新窗口。用户应该只能看到一个窗口。在我的情况下,如果我单击按钮10次,则打开10个窗口。

伙计们请为此提供帮助。

您可以这样做:

  var popup;
  function openWin() {
    if (popup && !popup.closed) {
      popup.focus();
      /* or do something else, e.g. close the popup or alert a warning */
    } else {
      var divText = document.getElementById("pass").outerHTML;
      popup = window.open('', '', 'width=200,height=100');
      var doc = popup.document;
      doc.open();
      doc.write(divText);
      doc.close();
    }
  }

这将检查弹出窗口是否打开,如果是弹出窗口,则它将集中注意力。

demo

,因为您可以在新窗口中写入一些脚本,因此您可以使用cookie存储类似标志的数据,以便您知道窗口当前已打开。

在主页上,您首先将标志(我将其命名为WindowOpen(为false,并每次单击链接时检查。如果是错误的,请打开新窗口;否则,什么都不做。

在后续窗口上,将标志设置为true在打开的窗口上,并将其设置为false。

在您的调用中设置窗口名称为 window.open

window.open('', 'popupWindowName', 'width=200,height=100');

Windowname是一个圆顶串,指定浏览上下文的名称(窗口或选项卡(,以加载指定资源。如果名称未指示现有上下文,则将创建一个新窗口,并给出Windowname指定的名称。然后,可以将此名称用作链接和表单的目标,并将其指定为元素或元素的目标属性。该名称不应包含空格。请记住,这不会用作窗口显示的标题。 如果字符串为空,则浏览器每次都会创建一个新窗口(当字符串被null替换时,此行为不起作用(。

只需使用Boolean标志。首次单击它时使其成立。并用它来限制。

var flag = false;
function openWin() {
  if(!flag) {
      var divText = document.getElementById("pass").outerHTML;
      var myWindow = window.open('', '', 'width=200,height=100');
      var doc = myWindow.document;
      doc.open();
      doc.write(divText);
      doc.close();
      flag = true
    }
}
<div id="pass">pass this to the new window</div>
<a href="#" onclick="openWin()">click</a>

最新更新