【问题标题】:IE 11 Access deinied when trying to access popup window.document尝试访问弹出窗口.document时IE 11访问被拒绝
【发布时间】:2016-11-19 01:01:25
【问题描述】:

我正在尝试在一个新的弹出窗口中加载一个 Web 应用程序,该窗口与我的应用程序位于不同的域中,使用发布请求(它必须是发布请求!)。尝试访问窗口的文档对象时,Internet Explorer 给我一条拒绝访问消息。我尝试了在类似的 SO 线程中发布的其他答案,但没有任何运气......

注意:我不能使用'' 或'about:blank' 作为url,因为IE 认为它不安全。

这是我的代码目前所做的

  1. 创建窗口对象
  2. 在 JavaScript 中生成表单
  3. 将表单附加到窗口主体。 // 访问被拒绝!

代码:

var win = window.open(url, windowname, params);
var form = $(document.createElement('form'))
              .attr('action', action)
              .attr('method', 'post');
$(win.document.body).html(form.html()); // access denied!

【问题讨论】:

  • 所以只需在页面中添加一个表单并将目标设置为空白。

标签: javascript jquery internet-explorer dom internet-explorer-11


【解决方案1】:

您是否有权访问将在弹出窗口中加载的内容的源代码?

如果是,试试这个:

为什么不使用静态 HTML 到您的弹出窗口 (i suggest you to use modals) 并通过从 POST 或 GET 参数接收它们来设置属性。

简而言之:更好地探索您的后端,避免使用 DOM 操作和弹出窗口。

如果答案是否定的:

试试这个:https://stackoverflow.com/a/7397164/5261900

【讨论】:

  • 感谢您的回复,我将尝试您提供的第二个链接。可悲的是,我无权访问后端代码。如果我这样做了,我什至不会首先使用 POST 请求(尤其是在加载窗口时)。 ://
  • @HaloMediaz 也许从弹出窗口切换到 iframe 可以为您提供更多处理外部内容 DOM 的方法。它还可以防止浏览器弹出块。
猜你喜欢
  • 2018-06-28
  • 1970-01-01
  • 2015-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-10
  • 1970-01-01
相关资源
最近更新 更多