Javascript 如何卸下iframe车身衬垫
好的,我一直在努力解决这个问题…我正在使用javascript动态生成iFrame…我试图做的是删除默认的填充和边距,并将其设置为0px…这是我的代码Javascript 如何卸下iframe车身衬垫,javascript,iframe,Javascript,Iframe,好的,我一直在努力解决这个问题…我正在使用javascript动态生成iFrame…我试图做的是删除默认的填充和边距,并将其设置为0px…这是我的代码 var newDiv = create_New_Div(); //this simple returns the id of the newly created //div in javascript var iframeIdName="my"+inival_iframear
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;
var newDiv=create_New_Div()//这个简单函数返回新创建的
//javascript中的div
var iframeIdName=“my”+inival\u iframearea+“iframe”;
inival_iframearea++;
var htcontents=“”;
document.getElementById(newDiv.innerHTML=htcontents;
如果我喜欢body{padding:0px;margin:0px}
wat发生的情况是主体有一个零填充和边距,但是当用户单击按钮后生成iframe时,该样式不应用于iframes主体,并且具有我不想要的默认填充和边距!!
谢谢 由于您没有在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.非常感谢jimbojw…它的作品非常完美!!顺便说一句,我不能使用“iframe.onLoad=restyle”行,因为存在求和错误!它到底做了什么?onload的目的是处理浏览器尚未“加载”iframe的情况。即使您没有指定src属性,iframe仍然会在其中加载一个文档,并且您不能指望它是同步完成的。