在iframe内容加载后触发js功能

时间:2015-02-06 08:48:22

标签: javascript jquery dom iframe onload

我从外部网站(Twitter Feed)加载iframe并希望使用JS更改css样式。

JS代码是:

$(".twitter-timeline").contents().find(".p-name").css("font-size","16px");
});

问题是我似乎无法在iframe的内容加载后执行此操作。我尝试用以下方法打开函数:

$('iframe.twitter-timeline').load(function(){

$('#twitter-widget-0').load(function(){

但它们似乎在iframe完成加载之前触发。刷新页面时,样式将按预期应用。但是如果我清除我的缓存并再次重新测试它将无法工作,除非我刷新。

如果我使用

window.setTimeout(function(){

并且给它3秒左右,它有时会起作用,具体取决于网速,所以我不想使用它。

2 个答案:

答案 0 :(得分:0)

<iframe id='myframe' src='http://url/doit.php' onload="onLoadHandler();"></iframe>

<script type="text/javascript">
function onLoadHandler() {
    $(".twitter-timeline").contents().find(".p-name").css("font-size","16px");
}
</script>

为iframe设置onload处理程序,然后在函数内运行代码。

答案 1 :(得分:0)

抱歉,在另一个帖子中找到了答案,完美地完成了: Styling the new twitter widget (embedded timeline)

我使用了jquery.waituntilexists.js https://gist.github.com/buu700/4200601