javascript - 在 iframe 中创建 DOM 元素

标签 javascript jquery html iframe

很简单html我不知道为什么不起作用的代码!
html文件包含在带有 id 的 iframe 标记中。
脚本创建一个元素并尝试将其附加到 iframe .
它不起作用,我不知道它为什么起作用(参见注释的代码)!

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>

<iframe id="s1" src="ifsrc.html"></iframe>

<script>
    var soal = document.createElement("a");
    var soaltext = document.createTextNode("text");
    var soalat = document.createAttribute("class");
    soalat.value = "class ";
    var soalid = document.createAttribute("id");
    soalid.value = "attid";

    soal.setAttributeNode(soalat);
    soal.setAttributeNode(soalid);
    soal.appendChild(soaltext);
    //document.body.appendChild(soal); its work!

    var iFrame =  document.getElementById("s1");
    var iFrameBody;
    iFrameBody = iFrame.contentDocument.getElementsByTagName("body")[0];
    iFrameBody.appendChild(soal); // its not work!
</script>

</body>
</html>

ifsrc.html

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
sample text
</body>
</html>

最佳答案

它的工作!

<script>
    var soal = document.createElement("a");
    var soaltext = document.createTextNode("tgggext");
    soal.appendChild(soaltext);

    alert("ad");

    var iFrame =  document.getElementById("s1");
    var iFrameBody;
    iFrameBody = iFrame.contentDocument.getElementsByTagName("body")[0];
    iFrameBody.appendChild(soal);
</script>

但是它不起作用!!!

<script>
    var soal = document.createElement("a");
    var soaltext = document.createTextNode("tgggext");
    soal.appendChild(soaltext);

    var iFrame =  document.getElementById("s1");
    var iFrameBody;
    iFrameBody = iFrame.contentDocument.getElementsByTagName("body")[0];
    iFrameBody.appendChild(soal);
</script>

终于我找到了我的问题。它是关于就绪事件的。
警报几乎不需要时间,足以让 iframe 完成加载并准备就绪。
我使用这段代码而不是上面的代码。

$(document).ready(function(){
    $('#s1').ready(function(){
        $('#s1').contents().find('body').html("<a>Hey, i`ve changed conten!</a>");
    });
});

它工作正常,因为就绪事件等待 iframe 加载完成。

关于javascript - 在 iframe 中创建 DOM 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25195439/

相关文章:

javascript - 我如何获取 X/HTML 文件中元素的 xpath

javascript - 用 : sign using regex 分隔 4 位数字

html - 一页网站中两个 Div 之间的间隙

javascript - 在 Javascript 中以编程方式复制和选择跨度(使用 clipboard.js)

javascript - 我们可以找到 2 个类(class)吗?

javascript - 使用 PHP 或 Nodejs 的组件构建器

javascript - 如何使用 Javascript 加载 NSTableView 以实现自动化

javascript - 在 React 中与父组件交互

javascript - 从 jQuery .each() 中的 javascript 对象中删除它

javascript - Jquery on Change 函数未在 asp.net MVC 中触发