---
title: "Denna kod öppnar ett fönster för mycket?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/17959-denna-kod-öppnar-ett-fönster-för-mycket"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "Daniel78"
published: "2001-07-05T09:09:00.000Z"
updated: "2001-07-09T15:08:00.000Z"
replies: 5
views: 216
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/javascript/17959-denna-kod-öppnar-ett-fönster-för-mycket"
---

# Denna kod öppnar ett fönster för mycket?

## #1 — Daniel78, 2001-07-05T09:09Z

Hej, använder denna kod när jag ska skriva ut en rapport ifrån SQL Server o lite annat. Allting fungerar perfekt förutom att det öppnas ett "onödigt" nytt fönster med samma innehåll som redirecten gör! Varför?

```
		<script>javascript:window.print();
		self.location.href='mselect.asp';</script>
```

Permalänk: https://www.webforum.nu/p/17959

## #2 — Jojoxx, 2001-07-06T05:44Z

Det finns egentligen bara ett syntax-fel i koden, och det är **javascript:**. Detta använder du bara i länkar för att tala om att protokollet inte skall vara http/ftp, e.dyl. utan att det är ett javascript-uttryck. Innanför ett script-block skall det aldrig vara med. Det är mycket möjligt att det kan ge ett sådant fel i vissa webbläsare.

Sedan skulle det inte skada med lite fler attribut i \<script\>-taggen för att tala om vad det är för språk.

```
<script language="JavaScript" type="text/javascript">
window.print();
location.href="mselect.asp";
</script>
```

Permalänk: https://www.webforum.nu/p/333761

## #3 — Erik Juhlin, 2001-07-06T05:49Z

Jag passar på att fråga dig Jojoxx som alltid är mån om läsare som inte stöder JavaScript varför du aldrig har med kommentar taggar?

Så här skulle jag ju skriva.. :)

```
<script language="JavaScript" type="text/javascript">
<!--
window.print();
location.href="mselect.asp";
//-->
</script>
```

Permalänk: https://www.webforum.nu/p/333762

## #4 — Jojoxx, 2001-07-06T10:44Z

För det första så är det ett minimalt antal webbläsare som visar script-koden när de inte har stöd för JavaScript (någon tidig Netscape version). Lynx exempelvis har som bekant inte stöd för JavaScript, men visar för den skull inte script-koden.

Sedan är det väl oftast så att skulle användaren sitta med en sådan webbläsare så är faktumet att den visar script-koden det minsta problemet; ingenting fungerar då :) Annat vore det ju om sidan skulle fungera utan JavaScripten, och det bara användes för att förfina funktionaliteten.

```
<a href="sida.html" target="_blank" onClick="window.open('sida.html','myWin','top=5,left=5,width=400,height=400); return false;">länk</a>
```

Här använder vi alltså JavaScript om det finns aktiverat för att öppna ett anpassat fönster. Finns det inte så öppnas det ändå, via html, i ett nytt fönster fast det inte är anpassat.

Men visst, det är inget fel i att sätta dit kommentarstaggarna. Fast det är ju ett kodmässigt skönhetsfel att blanda in html-element (kommentarstaggarna) i script-blocket :).

Permalänk: https://www.webforum.nu/p/333763

## #5 — Daniel78, 2001-07-09T11:09Z

Nix, tyvärr fungerade det inte. Om jag får spekulera i något så verkar det som om "location.href" vill byta sidan lite för snabbt, alltså innan "window.print" funktionen är klar och detta resulterar i konstigt uppförande. 

Jag har även en del "request.form" med i min asp kod och det verkar som om den information inte heller får tid att skrivas in i "html" koden. 

Kan man inte göra något form av "onload.finish" så ska skriv funktionen aktiveras, likadant när skriv ut funktionen är klar så ska "location.href" aktiveras"?

MVH
Daniel

Permalänk: https://www.webforum.nu/p/333764

## #6 — Jojoxx, 2001-07-09T15:08Z

> Nix, tyvärr fungerade det inte. Om jag får spekulera i något så verkar det som om "location.href" vill byta sidan lite för snabbt, alltså innan "window.print" funktionen är klar och detta resulterar i konstigt uppförande.

Ja, det är troligt. Här är ett alternativ;

```
window.print();
setTimeout('changeUrl("mselect.asp");',1000);
function changeUrl(URL){
	alert("Klicka 'OK' efter att du skrivit ut sidan");
	location.href=URL;
}
```

> Jag har även en del "request.form" med i min asp kod och det verkar som om den information inte heller får tid att skrivas in i "html" koden.

ASP-koden bearbetas på servern innan sidan skickas till användaren, så det är inget du behöver tänka på vid klientsidan. (Mao, på klientsidan ser du inget av asp-koden, utan ser bara en genererad html-sida).

> Kan man inte göra något form av "onload.finish" så ska skriv funktionen aktiveras, likadant när skriv ut funktionen är klar så ska "location.href" aktiveras"?

Jo, visst. Det är så onload-eventer fungerar. Det triggas alltså inte förrens hela sidan är laddad.

```
<body onLoad="printit();">
<script language="JavaScript" type="text/javascript">
function printit(){
	window.print();
	setTimeout('changeUrl("mselect.asp");',1000);
}
function changeUrl(URL){
	alert("Klicka 'OK' efter att du skrivit ut sidan");
	location.href=URL;
}
</script>
```

Permalänk: https://www.webforum.nu/p/333765

---

Tråden på webben: https://www.webforum.nu/amne/javascript/17959-denna-kod-öppnar-ett-fönster-för-mycket
