如何删除iframe体填充

时间:2011-07-20 17:15:18

标签: javascript iframe

好吧我有挣扎这个安静的长nw ...我使用javascript动态生成iframe ...我想要做的是删除默认填充和边距并将其设置为0px ...继承人我的代码

var newDiv = create_New_Div(); //this simple returns the id of the newly created
                           //div in javascript

        var iframeIdName="my"+inival_iframearea+"iframe";
        inival_iframearea++;
        var htcontents = "<iframe id='"+iframeIdName+"' frameborder='0'></iframe>";
        document.getElementById(newDiv).innerHTML = htcontents; 

如果我喜欢<style> body {padding:0px; margin:0px} </style> wat发生的是主体的填充和边距为零,但是当用户点击按钮后生成iframe时,此样式不会应用于iframes主体并具有我不想要的默认填充和边距! 谢谢!

1 个答案:

答案 0 :(得分:4)

由于您未在iframe中加载任何内容,因此您必须抓取其中的文档并自行进行更改。

var
   iframe = document.getElementById(newDiv).getElementsByTagName('iframe')[0];

function restyle() {
   var body = iframe.contentDocument.body;
   body.style.padding = 0;
   body.style.margin = 0;
}

iframe.onload = restyle;
restyle();

contentDocument有一些警告,所以你可能会在不同的浏览器中看到奇怪的行为。此外,您可能无法访问文档,具体取决于浏览器如何解释缺少src属性。我已经看到调用页面为https的问题,并且缺少src导致浏览器加载about:blank,它具有不同的协议,因此违反了同源策略。

onload的原因是,即使您没有加载单独的页面,浏览器仍然需要在其中加载“某些内容”。 YMMV。