jQuery/Javascript:从iframe内部设置iframe的边界

jQuery/Javascript: set border of iframe from inside iframe

本文关键字:iframe 内部 设置 边界 Javascript jQuery      更新时间:2024-02-06

我有一个iframe,我想把它的边界设置为零。

但我想使用javascript或jQuery从iframe内部的中执行此操作。

如何做到这一点?非常感谢,

如果父级位于不同的源,则不能执行此操作,因为同源策略禁止访问父级的内容。

如果父文档在同一来源,则应该这样做:

(function() {
  var frames = window.parent.document.getElementsByTagName("iframe"),
      index,
      frame;
  for (index = 0; index < frames.length; ++index) {
    frame = frames[index];
    if (frame.contentWindow == window) {
      frame.frameBorder = "none";
    }
  }
})();

实例|父对象的来源|帧的来源

请注意,在比较window属性时,使用==而不是===是很重要的(不寻常的是,window是特殊的)。

您可以通过$(parent.document).find('#myIframe').css('border', 'xxxx');来完成,但正如上面的评论所指出的,两个页面(主页面和iframe中显示的页面)应该在同一个域中,否则您将因同源策略而出现安全异常。

或者,您可以使用parent.$

parent.$("iframe").prop("frameborder", 0); // This will change all iframes
parent.$("#IframeID").prop("frameborder", 0); // This will change single iframe