2015-06-09 16 views
8

Poniższy kod do otwierania kalendarza w wyskakującym okienku działa we wszystkich przeglądarkach, ale ma błąd "odmowa zgody" w przeglądarce Microsoft Edge.Microsoft Edge przeglądarka javascript runtime błąd "odmowa zgody"

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

kodu przed tym:

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); 

ktoś wie dlaczego tak się dzieje?

+0

Chciałbym zobaczyć odpowiedź na to również. Niektóre z naszych testów, które wykonują polecenia 'window.open' i' doc.write' w MS Edge, zaczynają działać z błędem "Odmowa uprawnień". – joeltine

+0

Czy otwierasz to okno dialogowe automatycznie po wczytaniu strony, czy otwiera się ono w wyniku interakcji użytkownika (np. Kliknięcie przycisku)? Wygląda na to, że jeśli spróbujesz otworzyć wyskakujące okienko automatycznie, bez jawnej interakcji użytkownika, aby je wyzwolić, Edge zawsze je zablokuje. Nawet jeśli wybierzesz "zawsze zezwalaj", Edge będzie nadal blokował to. Nie mogę odtworzyć błędu "odmowa zgody", ale znalazłem ten błąd, który może być związany. Nie mogę tego odtworzyć: https://connect.microsoft.com/PL/feedback/details/1948354/permission-denied-error-with-accessing-addeventlistener-of-popup – MarkPlewis

+0

Może spróbuj zweryfikować kod HTML w twoje wywołanie document.writeln. Elementy 'title' i' link' powinny być zagnieżdżone w elemencie 'head' i może powinieneś spróbować dodać element' body' i zamykający tag 'html'. Ponadto nie wiem, co zawiera zmienna 'js', ale może być konieczne zrobienie czegoś podobnego za pomocą tagów' script': http://stackoverflow.com/questions/236073/why-split-the-script -tag-when-writing-it-with-document-write – MarkPlewis

Odpowiedz

8

myślę tu problemem jest same origin policy. IE (i najprawdopodobniej także Edge) prawdopodobnie uważa, że ​​okno zostało otwarte z pustym adresem URL '' jako w innej domenie niż kod wywołujący. Spróbuj otworzyć pustą stronę HTML zamiast pustego adresu URL.

+0

Inną opcją jest wypróbowanie 'about: blank', chociaż puste hostowane okazało się dla mnie bardziej niezawodne w przeszłości. –

+0

@JuanMendes: Myślę, że 'about: blank' nie działa tak dobrze - przynajmniej nie w naszych testach z IE10 +. –

Powiązane problemy