好吧我有挣扎这个安静的长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主体并具有我不想要的默认填充和边距!
谢谢!
答案 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。