webForumDet fria alternativet

skicka med en variabel med window.open()

JavaScript

3 svar · 373 visningar · startad av daniel_ra

Medlem sedan jan. 2002381 inlägg
Frågan#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)

267 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
135 ms — ändringar (db)