【问题标题】:access parent div from inside iframe从 iframe 内部访问父 div
【发布时间】:2013-05-07 23:54:56
【问题描述】:

有一个 div 里面有一个 iframe - 在按钮(在 iframe 内)单击将重定向到我域上的一个页面 - 在这个新页面上 - 当我这样做时 onload 事件

$('#ParentDIV',window.parent.document).hide();

出现错误:Permission denied to access property 'document

重定向页面在我的域中 - 但我看到我的重定向页面和脚本标签在 <iframe> 内 -

【问题讨论】:

  • iframe src 在来自父级的服务器中?
  • iframe src 在不同的域中 - 在我的域的 div 中 - 重定向的页面在我的域中
  • 谁对我的问题投了反对票,只是因为你可能有 15+ 的声誉 :) - 尝试理解问题的有效性 - 我刚刚能够解决我的问题 - 这是完美的工作 - 所以请不要仅仅因为你可以这样做 - 模组请尽量留意这些人。

标签: jquery iframe cross-domain


【解决方案1】:

出于安全考虑,javascript 无法做到这一点,已撤回对此类执行的支持。 iframe 的 url 应该与文档在同一个域中,这也包括子域。

例子:

www.host.com -> my.host.com [not working!]
www.host.com -> www.host.com [Works!]
www.host.com -> host.com [not working!]
host.com -> host.com [works!]

这样做的目的是避免注入他人的代码。

但是你可以做一些事情......使用 Ajax?:是的!

如果您需要从外部服务器获取数据,最好有这个: 理想情况下,外部服务器标头具有:

Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true

并在这段代码中使用 jQuery:

$.ajax({

    url: 'https://www.host.com/',
    data: myData,
    type: 'GET',
    crossDomain: true,
    dataType: 'jsonp',
    success: function() { alert("Success"); },
    error: function() { alert('Failed!'); },
    beforeSend: setHeader
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-15
    • 2021-09-21
    • 1970-01-01
    • 2011-03-26
    • 2011-10-31
    • 1970-01-01
    相关资源
    最近更新 更多