zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Javascript & Ajax
Seite neu laden in Fenster mit window.open() funktionieren Befehle nicht

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 27.10.2009, 21:14
Benutzerbild von Hasso
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 02.05.2006
Beiträge: 139
Hasso befindet sich auf einem aufstrebenden Ast
Standard in Fenster mit window.open() funktionieren Befehle nicht

Hallo,

ich öffne mit window.open() eine Druckvorschau und möchte dann dort die Navigation ausblenden. Das funktioniert leider nicht.
Der HTML-Part dazu:
Code:
<p id="drucksymbol" class="screen"><a title="Druckversion" onclick="druckversion();"><img src="druckvorschau.png" alt="Druckvorschau" title="Druckvorschau" /></a></p><div id="navigation">
  <p>
    <a href="http://www.test.de/aktuell.htm" target="_top">zurück</a>
    <a><img src="zurueck.png" alt="zurück: Alt+Pfeil nach links drücken"></a>
  </p>
</div>
Die JS-Funktion lautet.
Code:
function druckversion()
druckvorschau=window.open(window.location.href,"Druckvorschau","width=800,height=600");
druckvorschau.document.getElementById('navigation').innerHTML='';  // Navigation wird eingeblendet;
dann kommt die Fehlermeldung
Zitat:
druckvorschau.document.getElementById('navigation' ) is null
Wende ich die Funktion direkt auf mein Ursprungsdokument an, dann funktioniert es und das div "navigation" wird ausgeblendet!
Code:
function druckversion()
druckvorschau=window.open(window.location.href,"Druckvorschau","width=800,height=600");
document.getElementById('navigation').innerHTML='';  // Navigation wird eingeblendet;
__________________
Hasso
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 28.10.2009, 18:08
Benutzerbild von Pr0g
(^.^)
XHTMLforum-Mitglied
 
Registriert seit: 22.08.2005
Ort: Düsseldorf
Beiträge: 535
Pr0g wird schon bald berühmt werden
Standard

Ich denke wenn du mit window.open das neue Fenster öffnest, wird dieses noch geladen während du schon versuchst drauf zuzugreifen. Dies endet damit, dass er das Element (noch) nicht finden kann.

Hast du kein PHP oder so zur Verfügung?
__________________
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 28.10.2009, 18:13
Neuer Benutzer
neuer user
 
Registriert seit: 30.11.2006
Beiträge: 9
Quaese befindet sich auf einem aufstrebenden Ast
Standard

Hi,

du kannst das Zeitproblem lösen, indem du in der Funktion druckversion eine Variable derart setzt, dass du im Druckdokument im onload-Event testen kannst, ob es sich um eine Druckvorschau handelt.

Beispiel:
Code:
<html>
<head>
<title>JS - window.open</title>
<meta name="author" content="Quaese">
<script type="text/javascript">
  <!--
function druckversion(){
  druckvorschau=window.open(window.location.href,"Druckvorschau","width=800,height=600");
  // Druckvorschau-Flag setzen
  druckvorschau.blnDruckvorschau = true;
}

window.onload = function(){
  // Falls das Druckvorschau-Flag gesetzt ist -> Navigation ausblenden
  if(top.blnDruckvorschau){
    document.getElementById('navigation').innerHTML='';
  }
}
 //-->
</script>
</head>
<body>
<div id="navigation">Navigation</div>
<p id="drucksymbol" class="screen"><a title="Druckversion" onclick="druckversion();">Druckvorschau</a></p><div id="navigation">
  <p>
    <a href="http://www.test.de/aktuell.htm" target="_top">zurück</a>
    <a>zurück</a>
  </p>
</div>
</body>
</html>

Ciao
Quaese
__________________
Vielleicht muss man manchmal vom Weg abkommen, um nicht auf der Strecke zu bleiben!
Mit Zitat antworten
  #4 (permalink)  
Alt 29.10.2009, 15:27
Benutzerbild von Hasso
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 02.05.2006
Beiträge: 139
Hasso befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Quaese Beitrag anzeigen
Hi,

du kannst das Zeitproblem lösen, indem du in der Funktion druckversion eine Variable derart setzt, dass du im Druckdokument im onload-Event testen kannst, ob es sich um eine Druckvorschau handelt.
Das hat leider nicht funktioniert.
Ich habe das jetzt erst einmal so "gelöst", dass ich erst per Funktion druckversion() das Fenster erzeuge und dann mit setTimeout nach zwei Sekunden die ungewünschten Elemente ausblende. Das funktioniert, sieht aber natürlich nicht gut aus.
Code:
function druckversion()
{
  druckfenster=window.open("irgendwas.htm","Druckvorschau","width=800,height=600");
  setTimeout("kill_navi()",2000);
  }

function  kill_navi()
  {
  druckfenster.document.getElementById('navigation').innerHTML='';
  }
__________________
Hasso
Mit Zitat antworten
  #5 (permalink)  
Alt 30.10.2009, 08:49
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.949
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von Hasso Beitrag anzeigen
Das hat leider nicht funktioniert.
Natürlich funktionoiert das.

Wobei du aber weißt, dass du die Möglichkeit hast ein spezielles Druck CSS einzubauen und das die Browser eine Druckvorschau eingebaut haben?
Mit Zitat antworten
  #6 (permalink)  
Alt 02.11.2009, 10:07
Benutzerbild von Hasso
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 02.05.2006
Beiträge: 139
Hasso befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von protonenbeschleuniger Beitrag anzeigen
Wobei du aber weißt, dass du die Möglichkeit hast ein spezielles Druck CSS einzubauen und das die Browser eine Druckvorschau eingebaut haben?
Ein spezielles Druck-CSS habe ich und das wird auch beim Drucken wirksam. Ich möchte nur gerne, dass der Anwender vorher in einer Druckvorschau sieht, wie das Gedruckte aussieht. Dass der Browser eine Druckvorschau bietet, weiß ich auch, aber leider viele meiner Anwender nicht.
__________________
Hasso
Mit Zitat antworten
  #7 (permalink)  
Alt 02.11.2009, 11:15
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.949
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

Woher weißt du das? Viele Anwendungen haben eine Druckvorschau und im Firefox ist diese Funktion unmittelbar über der Druckfunktion. Ich kann mir nicht vorstellen, wie man die übersehen kann.
Mit Zitat antworten
  #8 (permalink)  
Alt 02.11.2009, 11:47
Benutzerbild von Hasso
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 02.05.2006
Beiträge: 139
Hasso befindet sich auf einem aufstrebenden Ast
Standard

protonenbeschleuniger,

Zitat:
Woher weißt du das? Viele Anwendungen haben eine Druckvorschau und im Firefox ist diese Funktion unmittelbar über der Druckfunktion. Ich kann mir nicht vorstellen, wie man die übersehen kann.
ich gebe dir ja völlig Recht, aber diejenigen, für die die Seite gemacht wird, wollen es leider so.
__________________
Hasso
Mit Zitat antworten
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Nicht alle Links funktionieren in Firefox Stesifa CSS 5 09.06.2010 20:38
virtuelles Fenster erstellen The Hit-Man CSS 17 06.08.2009 14:18
window.open – IE 6 macht zwei Fenster auf Kirsten Javascript & Ajax 3 06.09.2007 10:19
Stu Nicholls Pulldown / float bei zu kleinem Fenster? Dwarf CSS 5 24.01.2007 13:50
Formular posten und gleichzeitg neues Fenster aufmachen Ares (X)HTML 0 17.11.2006 13:11


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:28 Uhr.