iframe加载后如何获取更新的DOM文档?

时间:2017-08-31 08:41:08

标签: javascript jquery html5 iframe

我正在忙着自学更多关于网络技术的知识我目前关注的是javascript和jquery但我遇到了障碍。

我添加了一个Iframe(您从谷歌趋势中获得的一个)嵌入您的网站。 使用google耗材获取iframe的代码是:

<iframe id="myframe" scrolling="no" style="border:none;" width="250" height="413" src="https://trends.google.com/trends/hottrends/widget?pn=p1&amp;tn=10&amp;h=413"></iframe>

这使您可以很好地控制您的网站: enter image description here

现在我的任务或我想做的是循环趋势iframe中的所有元素,并使用java脚本和JQuery在屏幕上打印它们。

所以我做的是以下内容。

我的Php文件:

<html>
    <head>
        <meta charset="UTF-8">
         <!-- jQuery library -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
    </head>
    <body>
        <div id="widgettrend"></div>

    </body>
    <script src="js/manager.js"></script>
</html>

我的manager.js是:

$(document).ready(function(){
     alert($("html").html());
    $.holdReady(true);
    $( "#widgettrend" ).before( "<iframe id='myframe' scrolling='no' style='border:none;' width='250' height='413' src='https://trends.google.com/trends/hottrends/widget?pn=p"+localStorage['country']+"&amp;tn=10&amp;h=413'></iframe>" );

    //init plugin
    $.holdReady(false);
    //other code
    alert($("html").html());
});

但是我遇到的问题在我打印html的第一个提示中我得到了:

enter image description here

添加代码后的第二个提醒:

enter image description here

我可以看到它确实将它添加到我的html但没有加载它。所以几秒钟之后加载控件,如果我使用Chrome进行Inspect,我可以看到它已加载:

enter image description here

我也尝试延迟,以便控件有时间加载然后尝试获取html,但它仍然显示html,就像在第二个警报中一样。

就像iframe加载后它没有更新dom一样?

我想使用Jquery访问数据,但我无法看到代码中的元素。

这是否可以在加载后访问数据,就像我在Inspect图像中看到的那样?或者我是否需要以某种方式更新或刷新DOM?

我应该如何访问数据?

0 个答案:

没有答案