skicka med en variabel med window.open()

JavaScript

3 svar · 379 visningar · startad av daniel_ra

Medlem sedan jan. 2002381 inlägg
Trådstart#1

Jag har en funktion som öppnar ett nytt fönster utefter de kriterier jag skickar med till funktionen. det jag även skulle vilja göra är att skicka med en variabel till den öppnade sidan. Hur gör jag det?
i window.open() kan jag väl bara skicka med egenskaper för fönstret i sig?

Medlem sedan apr. 2005254 inlägg
#2

Finns säkert många lösningar. Så här har jag gjort i ett liknande fall då jag ville visa olika bilder o texter som ligger i varsin array:

function ShowPicture(i)
{
	content = '<html>';
	content += '<head>';
	content += '<title>picture</title>';
	content += '<LINK rel="stylesheet" type="text/css" href="style.css">';
	content += '<meta http-equiv="imagetoolbar" content="false">';
	content += '</head>';
	content += '<body class="popup">';
	content += '<table align="center"> <tr> <td colspan="2"><img src=' + pict[i] + '></td></tr>';
	content += '<tr><td><img src="pict/images/popupLogo.gif"></td>';
	content += '<td class="cvRubr"  align="right">&nbsp;<br>' + info[i] + '</td></tr></table>';
	content += '</body> </html>';

	top.frames[1].document.open();
	top.frames[1].document.clear();
	top.frames[1].document.write(content);
	top.frames[1].document.close();
	
}

Nu var du ganska kortfattad i din fråga, men den här lösningen går kanske att anpassa till din lösning om jag inte missuppfattat dig.

Medlem sedan sep. 20021 655 inlägg
#3

I Firefox kan man skriva så här:

<script type="text/javascript">
var w = window.open('', 'foo');
w.window.jsVar = "sträng";
w.document.open();
w.document.write('<script type="text/javascript">alert(jsVar);</sc'+'ript>');
w.document.close();
</script>

Dock fungerar det inte i IE, utan man får då hämta variabeln från moder-fönstret istället:

<script type="text/javascript">
jsVar = "sträng";
var w = window.open('', 'foo');
w.document.open();
w.document.write('<script type="text/javascript">alert(window.opener.jsVar);</sc'+'ript>');
w.document.close();
</script>
Medlem sedan jan. 2002381 inlägg
#4

löste det genom att skicka med värdena i querystring:

window.open(url+'?värde=1',name,egenskaper)

272 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
140 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)