【问题标题】:Iframe document global全局 iframe 文档
【发布时间】:2015-07-17 07:33:05
【问题描述】:

这是几个月来我遇到的第一个 js/HTML 问题,我无法在网上找到答案。如果我使用 jquery 或纯 JavaScript 动态填充 iframe,(所以我猜与父文档的来源相同),并且我用一些脚本填充子 iframe 在使用“文档”全局的正文中 - IE "$(document ).ready”,我如何确保它访问子文档而不是父文档?如果我用以下 HTML 填充动态 iframe:

<iframe id='if'><iframe>

并在脚本标签中添加如下函数:

$(function () {
    var innerDoc = $($('#if').contents()[0].childNodes[0]);
    innerDoc.html("<scr" + "ipt>" + 
      "var h1 = document.createElement('h1'); " + 
      "h1.innerText = 'hi!';" +  
      "document.body.appendChild(h1);" +
    "</scri" + "pt>"); 
});

HTML 将被插入到父文档的正文中。我已经确定这是因为动态插入 iframe 的脚本标记中的“文档”变量引用了父文档。如何确保准确的语句将正确执行,如“文档”变量将引用子 iframe 的文档?

【问题讨论】:

  • 你将不得不展示你拥有的更多代码。 This method 为我工作。

标签: javascript jquery html iframe


【解决方案1】:

显然使用 open() 和 writeln() 将使其按预期工作 - 我不知道为什么。

 var iframedoc = $('#if').contents()[0];
 iframedoc.open();
 iframedoc.writeln("<html><head></head><body><scr" + "ipt>" + 
  "var h1 = document.createElement('h1'); " + 
  "h1.innerText = 'hi!';" +  
  "document.body.appendChild(h1);" +
"</scri" + "pt></body></html>");
iframedoc.close();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-10
    • 2017-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-03
    相关资源
    最近更新 更多