我正在尝试在新窗口中打开一个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>