【发布时间】:2016-09-16 01:41:48
【问题描述】:
以下代码在弹出窗口中打开日历,适用于所有浏览器,但在 Microsoft Edge 浏览器中出现“权限被拒绝”错误。
popupWindow.document.writeln("<HTML>\n<TITLE>"+ title +"</TITLE>\n<link href='calendar.css' rel='stylesheet' type='text/css'>\n<HEAD>\n" + js + "</HEAD>");
之前的代码:
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 );
有人知道为什么会这样吗?
【问题讨论】:
-
我也很想看到这个问题的答案。我们在 MS Edge 中执行
window.open和doc.write的一些测试开始以“权限被拒绝”失败。 -
您是在页面加载时自动打开此弹出窗口,还是由于某些用户交互(即单击按钮)而打开?似乎,如果您尝试在没有明确的用户交互来触发它的情况下自动打开一个弹出窗口,Edge 将始终阻止它。即使您选择“始终允许”,Edge 仍会一直阻止它。我无法重现您的“权限被拒绝”错误,但我发现了这个可能相关的错误。我也无法重现:connect.microsoft.com/IE/feedback/details/1948354/…
-
也许可以尝试在您的 document.writeln 调用中验证 HTML。
title和link元素应该嵌套在head元素内,也许您应该尝试添加body元素和关闭html标记。另外,我不知道您的js变量包含什么,但您可能需要使用您的script标签执行类似的操作:stackoverflow.com/questions/236073/… -
先尝试
popupWindow.document.open(),然后使用document.writeln('your-html'),最后使用document.close(),看看是否更好 -
您需要一个 setTimeout 或 load 事件来允许返回的窗口对象具有完全填充的文档对象。