iframe内部添加的<script>标签中的js不执行?

我创建了一个iframe元素添加到了页面中,同时将获取的html内容跟js脚本添加进iframe的body中,但是script中的脚本并不会执行,这是浏览器中iframe的安全策略吗?有办法让script中的脚本执行吗?

阅读 15.7k
2 个回答

通过动态插入的方式,能让脚本执行,直接放进去没法执行

var ifr = document.createElement('iframe');
    ifr.id = 'uiui'
    document.body.append(ifr)
    var ifrBody = document.getElementById('uiui').contentDocument.body;
    var script = document.getElementById('uiui').contentDocument.createElement('script');
    script.innerHTML = `
      var p = document.createElement('p');
      p.innerHTML = 'o_o'
      document.body.appendChild(p);
    `;
    document.getElementById('uiui').contentDocument.body.appendChild(script);

的确是HTML 4.01新增的安全策略。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题