Zugriff auf Open Windows
bjnas
- javascript
Hallo zusammen
Habe mal versucht, auf ein mit window.open('foo.html') erzeugtes Fenster mittels document.getElementById('test') wieder zuzugreifen und Werte anzupassen.
Hat nicht gefunzt.
Meine Frage, geht das - oder noch besser wie geht das ?
Danke für Eure Hilfe
Hallo Bjnas,
Habe mal versucht, auf ein mit window.open('foo.html') erzeugtes Fenster mittels document.getElementById('test') wieder zuzugreifen und Werte anzupassen.
da machst Du einiges falsch, weil Dir die Hintergründe nicht ganz klar sind. Lies dazu den Artikel Zugriff auf verschachtelte Fensterobjekte!
Gruß aus Berlin!
eddi
Hallo bjnas
Habe mal versucht, auf ein mit window.open('foo.html') erzeugtes Fenster …
PopUps sind meist nicht zu empfehlen.
… mittels document.getElementById('test') wieder zuzugreifen und Werte anzupassen.
Das JavaScript müsste in deiner „foo.html” stehen oder du musst gezielt dieses Fenster ansprechen (Zugriff auf verschachtelte Fensterobjekte).
Das funktioniert mittels Fenstername.document.…, aber nur, wenn der Fensterinhalt von der selben Domain stammt, wie die Seite mit dem JavaScript (Same Origin Policy).
Auf Wiederlesen
Detlef
Hallo bjnas
Habe mal versucht, auf ein mit window.open('foo.html') erzeugtes Fenster …
PopUps sind meist nicht zu empfehlen.
Es geht hier nur um eine dynamische Druckansicht.
… mittels document.getElementById('test') wieder zuzugreifen und Werte anzupassen.
Das JavaScript müsste in deiner „foo.html” stehen oder du musst gezielt dieses Fenster ansprechen (Zugriff auf verschachtelte Fensterobjekte).
Das funktioniert mittels Fenstername.document.…, aber nur, wenn der Fensterinhalt von der selben Domain stammt, wie die Seite mit dem JavaScript (Same Origin Policy).
Natürlich verwende ich das erzeugte Objekt fenster = window.open('foo.html') für die Zuweisung fenster.document.getElementById('test') wieder.
Wie würdet Ihr das machen ?
Ich möchte je nach Aufruf, ein neues Fenster mit der speziell zugeschnittene Druckansicht erzeugen. Die Daten dazu werden aus der aufrufender Site oder einer Text Datei gesammelt.
Danke für Hinweise
Auf Wiederlesen
Detlef
Hi,
Habe mal versucht, auf ein mit window.open('foo.html') erzeugtes Fenster …
PopUps sind meist nicht zu empfehlen.
Es geht hier nur um eine dynamische Druckansicht.
Die erreicht man doch über File - Print Preview.
Wozu soll da ein Popup erforderlich sein?
cu,
Andreas
Hallo bjnas
Natürlich verwende ich das erzeugte Objekt fenster = window.open('foo.html') für die Zuweisung fenster.document.getElementById('test') wieder.
Das hättest du uns in deinem Ursprungsposting verraten können.
Schau nach, was die Fehlerkonsole sagt.
„Hat nicht gefunzt” ist keine ausreichende Fehlerbeschreibung!
Auch wäre ein wenig relevanter Quelltext hilfreich.
Wo und wie wird die Variable „fenster” erzeugt?
Ist das eine globale Variable?
Kennt die Funktion, die die Werte anpassen soll, diese überhaupt?
Wie würdet Ihr das machen ?
Ich möchte je nach Aufruf, ein neues Fenster mit der speziell zugeschnittene Druckansicht erzeugen. Die Daten dazu werden aus der aufrufender Site oder einer Text Datei gesammelt.
Ich würde keine speziell zugeschnittene Druckansicht verwenden, sondern eher ein spezielles Druckstylesheet.
Auf Wiederlesen
Detlef
Hallo bjnas
Natürlich verwende ich das erzeugte Objekt fenster = window.open('foo.html') für die Zuweisung fenster.document.getElementById('test') wieder.
Das hättest du uns in deinem Ursprungsposting verraten können.
Schau nach, was die Fehlerkonsole sagt.
„Hat nicht gefunzt” ist keine ausreichende Fehlerbeschreibung!
Auch wäre ein wenig relevanter Quelltext hilfreich.
Wo und wie wird die Variable „fenster” erzeugt?
Ist das eine globale Variable?
Kennt die Funktion, die die Werte anpassen soll, diese überhaupt?
Hier das bisschen Code (brauche ich eine globale Variable?) :
function printdoc(e) {
var o = e.srcElement || e.target;
var fenster = window.open('print.html', '_blank', 'width=500,height=800,status=no,scrollbars=yes,resizable=no');
fenster.document.getElementById("agb").innerHTML = o.parentNode.innerHTML;
fenster.focus();
}
Das o.parent.innerHTML funktioniert.
Das Fenster wird geöffnet aber beim fenster.document.getElement.. bleibt er hängen.
Wie würdet Ihr das machen ?
Ich möchte je nach Aufruf, ein neues Fenster mit der speziell zugeschnittene Druckansicht erzeugen. Die Daten dazu werden aus der aufrufender Site oder einer Text Datei gesammelt.
Ich würde keine speziell zugeschnittene Druckansicht verwenden, sondern eher ein spezielles Druckstylesheet.
Das geht leider nicht da nur gewisse Teile für die Druckansicht verwendet werden. Daraus wird quasi ein Merkzettel für ein Kurs generiert, und den wollte ich Clientseitig erstellen.
Auf Wiederlesen
Detlef
Hi,
function printdoc(e) {
var o = e.srcElement || e.target;
var fenster = window.open('print.html', '_blank', 'width=500,height=800,status=no,scrollbars=yes,resizable=no');
fenster.document.getElementById("agb").innerHTML = o.parentNode.innerHTML;
fenster.focus();
}
>
> Das o.parent.innerHTML funktioniert.
> Das Fenster wird geöffnet aber beim fenster.document.getElement.. bleibt er hängen.
Du gehst davon aus, dass augenblicklich nach dem Erstellen des neuen Fensters auch das Dokument in diesem schon geladen wäre, was aber natürlich nicht der Fall ist.
MfG ChrisB
--
Light travels faster than sound - that's why most people appear bright until you hear them speak.
Hallob jnas
Das Fenster wird geöffnet aber beim fenster.document.getElement.. bleibt er hängen.
Warum das passiert hat dir ChrisB ja bereits geschrieben.
Ich würde keine speziell zugeschnittene Druckansicht verwenden, sondern eher ein spezielles Druckstylesheet.
Das geht leider nicht da nur gewisse Teile für die Druckansicht verwendet werden. Daraus wird quasi ein Merkzettel für ein Kurs generiert, und den wollte ich Clientseitig erstellen.
Wenn ich dich richtig verstehe, dann willst du bestimmte Teile der aktuellen Seite drucken, den Rest nicht.
Was hindert dich denn daran, im Druckstylesheet die gewünschten Teile passend zu formatieren und alle anderen auf display:none zu setzen. (Es sei denn, du willst die Möglichkeit bestehen lassen, auch die gesamte Seite zu drucken.)
Auf Wiederlesen
Detlef
Hallob jnas
Das Fenster wird geöffnet aber beim fenster.document.getElement.. bleibt er hängen.
Warum das passiert hat dir ChrisB ja bereits geschrieben.
Ich würde keine speziell zugeschnittene Druckansicht verwenden, sondern eher ein spezielles Druckstylesheet.
Das geht leider nicht da nur gewisse Teile für die Druckansicht verwendet werden. Daraus wird quasi ein Merkzettel für ein Kurs generiert, und den wollte ich Clientseitig erstellen.
Wenn ich dich richtig verstehe, dann willst du bestimmte Teile der aktuellen Seite drucken, den Rest nicht.
Was hindert dich denn daran, im Druckstylesheet die gewünschten Teile passend zu formatieren und alle anderen auf display:none zu setzen. (Es sei denn, du willst die Möglichkeit bestehen lassen, auch die gesamte Seite zu drucken.)
Die Homepage beinhaltet verschiedene Kurse und für jeden Kurs ein Printsymbol. Jetzt wollte ich nur den angeklickten Kurs als Printansicht anzeigen lassen. Über das Druckstylesheet bekomme ja jedesmal die gleiche Ansicht.
Werde es doch über PHP lösen, da bin ich sattelfester.
Danke für die Hilfe.
Bruno
Auf Wiederlesen
Detlef
Hallo bjnas
Die Homepage beinhaltet verschiedene Kurse und für jeden Kurs ein Printsymbol. Jetzt wollte ich nur den angeklickten Kurs als Printansicht anzeigen lassen. Über das Druckstylesheet bekomme ja jedesmal die gleiche Ansicht.
OK, dann verstehe ich endlich, warum extra Seiten mit der jeweiligen Printansicht wolltest.
Werde es doch über PHP lösen, da bin ich sattelfester.
Das halte ich auch für sinnvoll, dann wäre auch überhaupt kein JavaScript erforderlich.
Da du ja sowieso eine extra Resource („print.html”) vom Server anforderst würde deine Javascriptvariante auch nicht wirklich Vorteile bringen.
Auf Wiederlesen
Detlef