webForumDet fria alternativet

kolla om fönster är öppet om så är fallet ladda inte dokumentet

JavaScript

3 svar · 229 visningar · startad av ag73

Medlem sedan okt. 20052 inlägg
Frågan#1

Hej, undrar om någon kan hjälpa mig med följande problem. Koden nedan öppnar ett fönster och lägger det längst fram. Jag undrar om man kan kolla fall fönstret, som kanske har namnet "mittfönster", är öppet och ifall fönstret är öppet så skall det inte laddas om med ett nytt eller samma dokument utan bara flyttas längst fram. Tack på förhand.

var newwindow;
function popUp(url, w, h, namn)
	{
	newwindow=window.open(url, namn, 'width='+ w +', height=' + h + ' resizable=no, scrollbars=auto, toolbars=no, location=no, directories=no, status=no, menubar=no, copyhistory=no');
	if (window.focus) {newwindow.focus()}
	}
Medlem sedan dec. 20025 483 inlägg
#2

Hej och välkommen till wF!

Här är ett sätt:

function popUp(url, w, h, namn)
	{
	    if (!newwindow)
		{
		newwindow=window.open(url, namn, 'width='+ w +', height=' + h + ' resizable=no, scrollbars=auto, toolbars=no, location=no, directories=no, status=no, menubar=no, copyhistory=no');
		with (newwindow.document)
		    {
			open();
			write("<script>window.onunload=function(){if(window.opener)window.opener.newwindow=null}<\/script>");
			close();
		    }
		}
	if (window.focus) {newwindow.focus()}
	}

Du kan ju även i sidan som laddas i popupfönstret skriva:

window.onunload = function(){
    if (window.opener)
        {
        window.opener.newwindow = null;
        }
}

Då kan du sedan ta bort with-satsen.

Observera att det har smygit sig in ovälkomna blanksteg inom <script>-taggarna ovan.

Medlem sedan okt. 20052 inlägg
#3

Hej, och tack för ditt svar och välkomnande :)

Jag får ett fel efter jag har öppnat fönstret.
Line 14
Char 3
Access is denied

Får inte du det?

När jag sedan försöker klicka på en av de andra länkarna får jag ytterligare felmeddelanden.
Line 21
Char 21
The callee(server(not server application) is not available and disappeared; all connections are invalid. The call did not execute.

Skall kanske tillägga att det fönstret som skall öppnas med ett visst namn alltid kommer att ladda samma dokument. Kan man i en funktion kolla ifall fönstret redan finns, om så är fallet så placera det längst fram, men om det inte finns så skapa det och ladda https://www.msn.se i det?

här är min fullständiga kod

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>TESTING TESTING</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="javascript">
var newwindow;
function popUp(url, w, h, namn)
	{
	    if (!newwindow)
		{
		newwindow=window.open(url, namn, 'width='+ w +', height=' + h + ' resizable=no, scrollbars=auto, toolbars=no, location=no, directories=no, status=yes, menubar=no, copyhistory=no');
		with (newwindow.document)
		    {
			open();
			write("<script>window.onunload=function(){if(window.opener)window.opener.ne  wwindow=null}<\/script>");
			close();
		    }
		}
	if (window.focus) {newwindow.focus()}
	}
</script>
</head>
<body>
	<p><a href="javascript:popUp( 'http://www.google.se', 200, 200, 'lille' )">öppna en liten pop-up</a></p>
	<p><a href="javascript:popUp( 'http://www.msn.se', 500, 500, 'store')">öppna en större pop-up</a></p>
	<p><a href="javascript:popUp( 'http://www.google.se', 200, 200, 'lille' )">öppna en liten pop-up</a></p>
	<p><a href="javascript:popUp( 'http://www.msn.se', 500, 500, 'store')">öppna en större pop-up</a></p>
</body>
</html>
Medlem sedan dec. 20025 483 inlägg
#4

Jag lyckas inte fundera ut någon lösning på det problemet. Kanske har någon annan en idé?

310 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
171 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
181 ms — ändringar (db)