Vue.js阻止了iframe的功能

时间:2016-10-17 18:48:38

标签: javascript ruby-on-rails iframe vue.js

我遇到了一个非常奇怪的问题,我需要在vue模板中加入iframe,然后再编辑这个iframe。我已设法将其减少到以下代码:

<html>
  <body>
    <div id="app">
      <iframe id="testFrame" src="javascript:''" width="500" height="500">
      </iframe>
      <!-- This iframe is coming from the rails `yield` helper function. However this is the MCVE of our problem. -->
    </div>

    <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.0.3/vue.min.js"></script>
    <script>

var doc = document.getElementById('testFrame').contentWindow.document;
doc.open();
doc.write('<html><head><title></title></head><body>Hello world.</body></html>');
doc.close();
new Vue({
  el: '#app'
});

    </script>
  </body>
</html>

然而,生成的iframe显示在此处:

Current, incorrect iframe.

但是,所需的行为是使文本呈现如下所示:

enter image description here

导致这个问题的原因是什么,我最好如何修复它? (请注意,这是一个极其简化的版本,最小完整可验证示例,我正在处理的一个非常大的rails应用程序。)

1 个答案:

答案 0 :(得分:0)

您正在做的是XSS。浏览器不允许这样做。