如何使用jQuery将jQuery注入到框架中?

时间:2017-08-19 09:05:10

标签: javascript jquery html frameset html-frames

我向an answer提供了this question,我尝试使用下面的vanilla Javascript,将jQuery注入到框架中:

<script type="text/javascript">
window.addEventListener('DOMContentLoaded', function() {
    frames['content'].addEventListener('load', function() {
        var contentFrameHead = frames["content"].document.getElementsByTagName("head")[0];
        var newScriptTag = document.createElement('script');
        newScriptTag.src = 'https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js';
        contentFrameHead.appendChild(newScriptTag);
      });
});
</script>

并将其转换为jQuery:

<script type="text/javascript">
$(function() { //DOM-ready
  $(frames['content']).on('load', function() { //DOM-ready for content frame
    $('head', frames["content"].document).prepend($('<script />').attr('src','https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js'));
    $('head', frames["content"].document).append($('<script />').attr('type','text/javascript').text('setTimeout(function() { console.log("jQuery type:", typeof jQuery); }, 3000);'));
  });  
});

虽然脚本标记似乎已加载到框架中,但jQuery似乎并未在该框架的上下文中定义。 Here  是一个原始的vanilla Javascript工作在一个plunker示例中,here是将jQuery添加到index.html并尝试将脚本转换为Javascript后的plunker。

为什么jQuery似乎没有在第二个版本中加载?我绑定了2.1.1和3.1.1两个版本,但似乎没有任何区别。是因为jQuery存在于顶部框架中,在框架中出现冲突吗?

0 个答案:

没有答案