即使使用了异步加载的iframe的window.onload,getElementById也返回null

时间:2016-05-20 13:44:15

标签: javascript html asynchronous iframe

我在this page上的排行榜(顶部横幅)上应用了一些样式时遇到了问题,这是异步加载的。我尝试过使用window.onload,但是当我使用getElementById时,它仍然会返回null。而且我无法访问网页,我无法将脚本移到底部(在结束标记之前)。

这是排行榜,以iFrame格式加载:

<div class="adWrapperFlightId" id="sas_18258_38503">
<iframe src="http://content.aimatch.com/cent/3/Hornmann_Aktualne_branding_leaderboard.swf.html?click=http://a.centrum.cz/cent/adclick/FCID=38503/fcid=38503/relocate=&clickTAG=http://a.centrum.cz/cent/adclick/FCID=38503/fcid=38503/relocate=" scrolling="no" allowtransparency="true" marginwidth="0" marginheight="0" vspace="0" hspace="0" noresize="true" frameborder="0" align="left" style="border: 0px none; padding: 0px ;margin: 0px; float:none;" width="1180" height="210"></iframe>
</div>

这是脚本,我想申请:

<script type="text/javascript" id="scriptborder">

(function(window, document, undefined){

var border = 'yup';

window.onload = init;

function init(){
if (""!==border) {
var e="1180";
var r = "210";
var t=parent.document.getElementById("sas_18258_38503").parentElement;
t.insertAdjacentHTML("afterbegin",'<div id="iframeborder"></div>');
borderYes=parent.document.getElementById("iframeborder");
borderYes.style.cssText="border: 1px solid silver; padding: 0px ;margin: 0px; float:none;width:"+(e-2)+"px;height:"+(r-2)+"px;background-image:url('http://i0.cz/reklama/bo/transparent.png');position: absolute;cursor: pointer;";
borderYes.setAttribute("onclick","window.open('http://a.centrum.cz/cent/adclick/FCID=38503/fcid=38503/relocate=', '_blank');");
    }
  }

})(window, document, undefined);

</script>

我知道这个问题可能是重复的,但是我还没有发现任何应用于异步加载的iframe,...或者我在Javascript中是新手,这也是事实。

感谢您的任何反馈!

2 个答案:

答案 0 :(得分:0)

我不确定原始JavaScript,但这是我使用jquery

$( “#myIframeId”)。负载(函数(){        打回来(        //这是您的回拨代码

});

希望有所帮助

答案 1 :(得分:0)

1)borderYes是否正确启动?从代码的外观来看,borderYes应该是一个元素对象?我没有在你发布的代码中看到“var borderYes = document.getElementById('elemID')”或类似内容。也许你在代码中的其他地方实例化了borderYes。

2)我从未见过或听说过parent.document.getElementById('elemID')的对象层次结构。我希望它只是document.getElementById('elemID'),省略“parent”。

“parent”是每个元素都具有的属性,包含对包含该元素的“父”对象的对象引用。