2015-06-09 5 views
8

Der folgende Code zum Öffnen eines Kalenders in Popup-Fenster, funktioniert in allen Browsern aber Fehler "Zugriff verweigert" in Microsoft Edge-Browser.Microsoft Edge-Browser JavaScript-Laufzeit "Berechtigung verweigert" Fehler

popupWindow.document.writeln("<HTML>\n<TITLE>"+ title +"</TITLE>\n<link href='calendar.css' rel='stylesheet' type='text/css'>\n<HEAD>\n" + js + "</HEAD>"); 

Der Code vorher:

popupWindow = window.open("","CAL1","toolbar=no,location=no,status=no, 
    menubar=no,scrollbars=auto,resizable=no,alwaysRaised=no,dependent=yes, 
    titlebar=no," + strDims + ",left=" + xoffset + ",top=" + yoffset); 

Jeder weiß, warum dies geschieht?

+0

Ich würde gerne eine Antwort darauf auch sehen. Einige unserer Tests, die 'window.open' und' doc.write' in MS Edge enthalten, fingen an mit "Permission denied" zu scheitern. – joeltine

+0

Öffnen Sie dieses Popup automatisch beim Laden der Seite oder wird es als Ergebnis einer Benutzerinteraktion geöffnet (d. H. Durch Klicken auf eine Schaltfläche)? Wenn Sie versuchen, ein Popup automatisch ohne explizite Benutzerinteraktion zu öffnen, um es auszulösen, wird es von Edge immer blockiert. Selbst wenn Sie "immer zulassen" auswählen, wird Edge diese weiterhin blockieren. Ich kann Ihren "permission denied" Fehler nicht reproduzieren, aber ich habe diesen Fehler gefunden, der damit zusammenhängen könnte. Ich kann es auch nicht reproduzieren: https://connect.microsoft.com/IE/feedback/details/1948354/permission-denied-error-with-accessing-addeventlistener-of-a-popup – MarkPlewis

+0

Vielleicht versuchen Sie, das HTML in validieren Ihr document.writeln Anruf. Die Elemente 'title' und' link' sollten im Element 'head' verschachtelt sein. Vielleicht sollten Sie versuchen, ein 'body'-Element und ein schließendes' html'-Tag hinzuzufügen. Ich weiß auch nicht, was Ihre 'js'-Variable enthält, aber Sie müssen möglicherweise etwas mit Ihren' script' -Tags tun: http://StackOverflow.com/questions/236073/why-split-the-script -tag-writing-it-with-document-write – MarkPlewis

Antwort

8

Ich denke, das Problem ist hier die same origin policy. IE (und höchstwahrscheinlich auch Edge) betrachtet ein mit einer ''10 (leer) URL geöffnetes Fenster wahrscheinlich als in einer anderen Domäne als dem aufrufenden Code liegend. Versuchen Sie beispielsweise, anstelle einer leeren URL eine leere HTML-Seite zu öffnen.

+0

Eine andere Möglichkeit ist es, 'about: blank' zu versuchen, obwohl eine leere Version in der Vergangenheit für mich zuverlässiger war. –

+0

@JuanMendes: Ich denke, 'über: blank' wird nicht so gut funktionieren - zumindest nicht in unseren Tests mit IE10 +. –

Verwandte Themen