如何在另一个加载后包含一个javascript文件?

时间:2017-07-28 16:53:45

标签: javascript jquery html iframe

我有一个id =" iframe" 在index.php的页脚里面,我想在iframe加载后包含一个javascript文件。

到目前为止,我有:

<script>
$('#iframe').onload = function () {
    </script>
        <script src="/js/myjsfile.js"></script>
    <script>
}
</script>

然而,该网页生气并说: SyntaxError:意外的输入结束(对于{) 和SyntaxError:意外的标记} 如何在加载另一个文件后包含这些文件?

3 个答案:

答案 0 :(得分:1)

你应该试试这个:

var s = document.createElement("script");
s.type = "text/javascript";
s.src = "http://somedomain.com/somescript";
$("head").append(s);

有关详细信息,请参阅this post

希望这会有所帮助!

答案 1 :(得分:0)

您可以使用jQuery.getScript()并检测iframe的加载事件。

$('#iframe').on('load', function(e) {
    $.getScript('https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.14.1/moment.min.js', function() {
        // library is loaded. Now I can start to use.;
        console.log('Now the library is loaded!');
    });
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<iframe id="iframe" src="https://dummyimage.com/200x200/000/fff" style="width: 200px;height: 200px"></iframe>

另一种方法可以基于动态添加脚本元素,如:

$('#iframe').on('load', function(e) {
  $('head').append($('<script/>', {src: 'https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.14.1/moment.min.js'}));
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<iframe id="iframe" src="https://dummyimage.com/600x400/000/fff" style="width: 200px;height: 200px"></iframe>

答案 2 :(得分:-1)

您可以像这样在iframe上加注脚本标记。

        <script>
         $('#iframe').on('load', function() {
             var script = document.createElement('script');
             script.src = '/js/myjsfile.js';
             document.body.appendChild(script);
         });
        </script>