我需要將當前頁面中的某些文本傳遞到彈出窗口,而不必打開服務器。這些信息(這裏用90表示)已經在父窗體中可用(它就像一段長文本,它存儲在一個隱藏的變量中)。我只需要將它顯示爲一個彈出窗口。使用Javascript將變量傳遞給彈出窗口
這是我試過的,這在一定程度上起作用,但如果我傳遞文本而不是數字,則不起作用。我的第二個擔心是解決方案看起來很醜。有小費嗎?謝謝。
這是SCCE,你可以直接在你的機器上運行它。
<html>
<head>
<title>A New Window</title>
<script type="text/javascript">
var newWindow;
var data;
function makeNewWindow(param) {
data = param;
if (!newWindow || newWindow.closed) {
newWindow = window.open("","sub","status,height=200,width=300");
setTimeout("writeToWindow()", 50); /* wait a bit to give time for the window to be created */
} else if (newWindow.focus) {
newWindow.focus(); /* means window is already open*/
}
}
function writeToWindow() {
var k = data;
alert(data);
var newContent = "<html><head><title>Additional Info</title></head>";
newContent += "<body><h1>Some Additional Info</h1>";
newContent += "<scr"+"ipt type='text/javascript' language='javascript'> var localVar; localVar = "+ k +"; document.write('localVar value: '+localVar);</scr"+"ipt>";
newContent += "</body></html>";
// write HTML to new window document
newWindow.document.write(newContent);
newWindow.document.close(); // close layout stream
}
</script>
</head>
<body>
<form>
<input type="button" value="Create New Window" onclick="makeNewWindow('90');" />
</form>
</body>
</html>
其實,我用Google搜索,發現使用window.opener.document.forms.element
一些其他的方法,但在這裏,窗口有提前一下,有從父看了就知道了。我需要能夠通過它,因爲它可能會有所不同:
<textarea rows="15" name="projectcontent" id="projectcontent" cols="87"></textarea>
<a href="javascript:;" onclick="window.open('viewcon.asp', 'my_new_window','toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=yes, width=625, height=400');"><b>View Content</b></a>
<head>
<title>View Project Content</title>
</head>
<body>
<img src="/images/toplogo.jpg"><br/>
<script language="Javascript">
document.write(window.opener.document.forms['yourformname'].elements['projectcontent'].value)
</script>
<img src="/images/bottomlogo.jpg">
</body>
</html>
這是使用'setTimeout'非常危險的方法。擺脫引號和括號! –
爲什麼要使用cookies? –
模態對話框如何? 'window.open'是90多歲,很多用戶由於彈出窗口攔截器而無法看到它。 – elclanrs