Brainf ...使用iframe。
所以,当前页面结构:
page -> main_iframe -> iframe1 -> iframe2
脚本在“main_iframe”中执行。 这个“main_iframe”有“iframe1”,“iframe1”里面有“iframe2”:
我想更改iframe2的宽度= 100%,iframe1位于main_iframe内部
所以我正在“main_iframe”执行以下js并且它可以工作:
document.querySelector('#iframe1').onload = function() {
setTimeout(function(){
document.querySelector('#iframe1').contentDocument.querySelectorAll("iframe")[0].style.width = '100%';
}, 3000);
}
但是如何删除超时计时器,以便在iframe2加载后立即呈现?
我试过以下:
document.querySelector('#iframe1').onload = function() {
document.querySelector('#iframe1').contentDocument.querySelectorAll("iframe")[0].onload = function () {
document.querySelector('#iframe1').contentDocument.querySelectorAll("iframe")[0].style.width = '100%';
}
};
但是没有运气,在上火后没有任何事情发生。
答案 0 :(得分:1)
您可以在加载事件处理程序中使用this
引用外部iframe,这使得它更加整洁。这应该做你需要的......
document.querySelector("#iframe1").addEventListener("load", function() {
this.contentDocument.querySelector("iframe").style.width = "100%";
});