Error: Access is denied.
Markus
- javascript
Hallo zusammen.
Ich zerbreche mir gerade darüber den Kopf, was der Internet Explorer mir mit folgender Fehlermeldung sagen will:
Line: 48
Char: 3
Error: Access is denied.
code: 0
URL: ...
Der dazugehörige JavaScript-Code sieht folgendermaßen aus:
<script>
var features = 'width =' + (screen.availWidth - 200 )+
',height =' + (screen.availHeight - 100) +
',toolbar=no, status=no, menubar=no, left=100, top=50, resizable';
newWindow = window.open('','',features);
newWindow.document.writeln('<html><head><title>Personal Summary Statement</title>');
newWindow.document.writeln('<style type="text/css">body { margin:0px; }</style></head>');
newWindow.document.writeln('<body>');
newWindow.document.writeln('<iframe src="<%= model->at_iu_url %>" height="100%" width="100%"></iframe>' );
newWindow.document.writeln('</body></html>');
newWindow.document.close();
</script>
Ich erhalte zwar das Popup, allerdings ohne den gewünschten iframe. Meinen Recherchen nach zu urteilen, hat das etwas mit der URL des Parent und des Popup zu tun (wenn diese nicht übereinstimmen, darf man den HTML-Code nicht ändern).
Dieses Problem tritt nur unter Verwendung des Internet Explorers auf. Firefox macht an dieser Stelle keine Probleme. Ob das im Einzelnen nun gut oder schlecht ist möchte ich an dieser Stelle nicht weiter erörtern, vielmehr suche ich nach einer Lösung, dass ich auch im Internet Explorer den iframe sehe.
Vielen Dank für eure Hilfe.
Mahlzeit Markus,
Der dazugehörige JavaScript-Code sieht folgendermaßen aus:
newWindow.document.writeln('<iframe src="<%= model->at_iu_url %>" height="100%" width="100%"></iframe>' );
Nein, tut er nicht. Bei einem clientseitigen Problem ist serverseitiger Code komplett irrelevant. Was kommt also beim Client an?
MfG,
EKKi
PS: Und wer kommt auf die idiotische Idee, PHP mit ASP-Tags zu schreiben? Oder um welche serverseitige Skriptsprache handelt es sich?
--
sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
newWindow.document.writeln('<iframe src="<%= model->at_iu_url %>" height="100%" width="100%"></iframe>' );
Ich hätte es doch gleich wissen müssen, dass man hier stolpern wird. Das ganze ist BSP, also weder ASP noch PHP. Stell dir an dieser Stelle einfach eine valide URL vor, beispielsweise "/default.htm". Tatsächlich steht dort ein Link zu einer PDF aber das ist an dieser Stelle nicht von Bedeutung.
Mahlzeit Markus,
Stell dir an dieser Stelle einfach eine valide URL vor, beispielsweise "/default.htm". Tatsächlich steht dort ein Link zu einer PDF aber das ist an dieser Stelle nicht von Bedeutung.
Nein, ich stelle mir da nichts vor. Wenn es sich um ein Client-Problem mit HTML oder Javascript handelt, dann zeige bitte validen, vollständigen Beispielcode, mit dem man das Problem nachvollziehen kann. Alles andere ist weder hilfreich noch zielführend.
MfG,
EKKi
Nein, ich stelle mir da nichts vor. Wenn es sich um ein Client-Problem mit HTML oder Javascript handelt, dann zeige bitte validen, vollständigen Beispielcode, mit dem man das Problem nachvollziehen kann. Alles andere ist weder hilfreich noch zielführend.
<script>
var features = 'width =' + (screen.availWidth - 200 )+
',height =' + (screen.availHeight - 100) +
',toolbar=no, status=no, menubar=no, left=100, top=50, resizable';
newWindow = window.open('','',features);
newWindow.document.writeln('<html><head><title>Personal Summary Statement</title>');
newWindow.document.writeln('<style type="text/css">body { margin:0px; }</style></head>');
newWindow.document.writeln('<body>');
newWindow.document.writeln('<iframe src="/result.pdf" height="100%" width="100%"></iframe>' );
newWindow.document.writeln('</body></html>');
newWindow.document.close();
</script>
Mahlzeit Markus,
<script>
var features = 'width =' + (screen.availWidth - 200 )+
',height =' + (screen.availHeight - 100) +
',toolbar=no, status=no, menubar=no, left=100, top=50, resizable';
newWindow = window.open('','',features);
newWindow.document.writeln('<html><head><title>Personal Summary Statement</title>');
newWindow.document.writeln('<style type="text/css">body { margin:0px; }</style></head>');
newWindow.document.writeln('<body>');
newWindow.document.writeln('<iframe src="/result.pdf" height="100%" width="100%"></iframe>' );
newWindow.document.writeln('</body></html>');
newWindow.document.close();
</script>
Danke. Wenn Du uns jetzt noch verrätst, welche Zeile hiervon Zeile 48 ist (denn diese wurde ja vom IE angemeckert - so stand es zumindest in Deinem Ursprungsbeitrag), kann man sogar langsam anfangen, den Fehler zu suchen ...
MfG,
EKKi
--
sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
Danke. Wenn Du uns jetzt noch verrätst, welche Zeile hiervon Zeile 48 ist (denn diese wurde ja vom IE angemeckert - so stand es zumindest in Deinem Ursprungsbeitrag), kann man sogar langsam anfangen, den Fehler zu suchen ...
newWindow.document.writeln('<html><head><title>Personal Summary Statement</title>');
Mahlzeit Markus,
newWindow.document.writeln('<html><head><title>Personal Summary Statement</title>');
Das heißt also, Dein "parent"-Fenster darf überhaupt nicht den Quelltext des "popup"-Fensters ändern. Du sprachst in Deinem Ursprungsposting bereits das Problem mit der Same-Origin-Policy an ... dazu fällt mir folgendes ein:
Du öffnest das Popup mit folgendem Code:
> > > newWindow = window.open('','',features);
D.h. Du übergibst ihm KEINE URL ... ob eine leere bzw. keine URL wohl die Same-Origin-Policy im Hinblick auf Gleichheit der Domains erfüllt wie Dein "parent"-Fenster?
MfG,
EKKi
--
sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
Du öffnest das Popup mit folgendem Code:
newWindow = window.open('','',features);
D.h. Du übergibst ihm KEINE URL ... ob eine leere bzw. keine URL wohl die Same-Origin-Policy im Hinblick auf Gleichheit der Domains erfüllt wie Dein "parent"-Fenster?
Für Testzwecke habe ich folgendes probiert:
newWindow = window.open('blank.htm','',features);
blank.htm ist wie der Name vermuten lässte in leeres Dokument. Das Resultat ist allerdings das Selbe. Sonst noch eine Idee was ich probieren könnte?
Hallo,
newWindow.document.writeln('<html><head><title>Personal Summary Statement</title>');
ich tippe mal wieder auf ein Zählproblem des IE und vermute den Fehler in der Zeile davor:
newWindow = window.open('','',features);
Insbesondere der feature-String, den du vorherzusammensetzt, verdient Aufmerksamkeit. Er ergibt sich nämlich zu:
'width =<w>,height =<h>,toolbar=no, status=no, menubar=no, left=100, top=50, resizable'
wobei <w> und <h> jeweils die berechneten Breiten- und Höhenangaben sind.
Und dieser String enthält Leerzeichen, die da AFAIK giftig sind. Vor allem die Leerzeichen *vor* dem "=" bei width und height sehen irgendwie "krank" aus.
So long,
Martin
wobei <w> und <h> jeweils die berechneten Breiten- und Höhenangaben sind.
Und dieser String enthält Leerzeichen, die da AFAIK giftig sind. Vor allem die Leerzeichen *vor* dem "=" bei width und height sehen irgendwie "krank" aus.
Habe alle Leerzeilen aus dem feature-String entfernt, ohne Erfolg. Das Resultat ist das Selbe.
Für die Akten, hier die Lösung. Nur für den Fall, dass jemand einmal das selbe Problem haben sollte.
Das Problem war die Position des Scripts im HTML-Code. Da das ganze eine BSP Applikation mit htmlb ist, ist man was die Positionierung angeht, leider etwas eingeschränkt. Der JS-Code stand somit irgendwo im body-Bereich. Jedenfalls kann man als Option den JS-Code vor das <html>-Element setzen. Tut man das, funktioniert es.
Keine Lösung, die mir gefällt, aber sie funktioniert.
Mahlzeit Markus,
Das Problem war die Position des Scripts im HTML-Code. Da das ganze eine BSP Applikation mit htmlb ist,
... was Du uns zu Anfang verschwiegen hast. Das ist nicht unbedingt hilfreich. Normalerweise gehen die Leser davon aus, dass es sich um Standard-HTML und öffentlich zugängliche Seiten handelt. Wenn das nicht so ist (Intranet, spezielle Clients, individuelle Technologien), sollte der Hilfesuchende diese Informationen auch liefern.
ist man was die Positionierung angeht, leider etwas eingeschränkt. Der JS-Code stand somit irgendwo im body-Bereich. Jedenfalls kann man als Option den JS-Code vor das <html>-Element setzen. Tut man das, funktioniert es.
... und invaliden Code.
MfG,
EKKi
Mahlzeit Markus,
Das Problem war die Position des Scripts im HTML-Code. Da das ganze eine BSP Applikation mit htmlb ist,
... was Du uns zu Anfang verschwiegen hast. Das ist nicht unbedingt hilfreich. Normalerweise gehen die Leser davon aus, dass es sich um Standard-HTML und öffentlich zugängliche Seiten handelt. Wenn das nicht so ist (Intranet, spezielle Clients, individuelle Technologien), sollte der Hilfesuchende diese Informationen auch liefern.
Dass es sich um BSP handelt habe ich im Laufe des Themas erwähnt. Anderes lasse ich mir nicht unterstellen.
ist man was die Positionierung angeht, leider etwas eingeschränkt. Der JS-Code stand somit irgendwo im body-Bereich. Jedenfalls kann man als Option den JS-Code vor das <html>-Element setzen. Tut man das, funktioniert es.
... und invaliden Code.
Das ist mir bekannt. Aber so lange es keine andere Möglichkeit gibt nehme ich auch das hin.