iframe中的JavaScript日期选择器错误javascript


Answers

你有最后的选择是尝试使用沙箱属性。

allow-scripts: Allows the embedded browsing context to run scripts (but not create pop-up windows). If this keyword is not used, this operation is not allowed.

https://developer.mozilla.org/en/docs/Web/HTML/Element/iframe

如果这不起作用,请离开iframe。 iframe元素被创建为沙盒环境,并且在打开allow-scripts时很容易出现非常高的安全风险。 生成的网页/外部网站放入iframe可以做任何事情...从字面上来说,任何东西从获得访问凭据,饼干,访问等,如果你删除沙箱。

如果您想访问其内容中的DOM,则强烈建议不要使用iframe。 如果完全或部分隔离是您唯一关心的问题,请尝试使用Web组件的隔离方法来:

https://developer.mozilla.org/en-US/docs/Web/Web_Components

Question

我有一个页面https://dev.leadformly.com/datepicker有一个iframe在那个特定的'',我正在通过Ajax调用下面的代码动态地写HTML代码。

<script>
  $(document).ready(function(){
    $.post(URL,
        function (data) { //here it retruns the HTML code
          $("body").html('<iframe style="width:100%;height:384px;"></iframe>');
          $("body iframe")[0].contentDocument.write(data.democode);
        },
        'json'
      );
    });
</script>

现在当我点击日期选择器时,它会在控制台中抛出一个错误,如:

Uncaught TypeError: Cannot read property 'top' of undefined

你能帮我解决这个问题吗? 或者只是解释原因,这将帮助我解决它