[英]Open a div in new window - on-click of button
伙計們,我正在嘗試在新窗口中打開一個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();
}
問題 :如果該窗口已經打開,則當我再次單擊該按鈕時,它不應再次打開新窗口。 用戶應該只能看到一個窗口。 就我而言,如果我單擊按鈕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();
}
}
這將檢查彈出窗口是否打開,如果打開,則將其聚焦。
只是玩Boolean
標志。 首次單擊時將其設為true。 並以此來限制它。
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>
由於您可以在新窗口中編寫一些腳本,因此可以使用Cookie在其中存儲類似標志的數據,以便您知道該窗口當前處於打開狀態。
在主頁上,首先將標志(我將其命名為windowOpen)設置為false,並在每次單擊鏈接時進行檢查。 如果為假,則打開新窗口。 否則,什么都不做。
在隨后的窗口中,將標志設置為在打開時為true,在關閉時將其設置為false。
在對window.open
的調用中設置一個窗口名稱
window.open('', 'popupWindowName', 'width=200,height=100');
windowName是一個DOMString,它指定將指定資源加載到其中的瀏覽上下文(窗口或選項卡)的名稱; 如果名稱不表示現有上下文,則創建一個新窗口,並為其指定由windowName指定的名稱。 然后,通過將其指定為或元素的目標屬性,可以將該名稱用作鏈接和表單的目標。 該名稱不應包含空格。 請記住,這將不會用作窗口顯示的標題。 如果字符串為空,則瀏覽器每次都會創建一個新窗口(將字符串替換為NULL時,此行為不起作用)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.