4

我有一个 iframe,我想将它的边框设置为零。

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

这该怎么做?提前谢谢了,

4

3 回答 3

3

您可以通过$(parent.document).find('#myIframe').css('border', 'xxxx');- 但正如上面的评论所指出的那样,两个页面(主要页面以及 iframe 中显示的页面)都应该在同一个域中 - 否则您最终会因为以下原因而出现安全异常同源政策。

于 2012-07-25T11:59:52.120 回答
3

如果父级位于不同的来源,则不能这样做,因为Same Origin Policy禁止访问父级的内容。

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

(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通常是特殊的)。

于 2012-07-25T12:04:25.943 回答
2

或者,您可以使用 parent.$

parent.$("iframe").prop("frameborder", 0); // This will change all iframes
parent.$("#IframeID").prop("frameborder", 0); // This will change single iframe
于 2012-07-25T12:05:29.073 回答