gpt4 book ai didi

javascript - iframe 的 div 中的元素在当前代码中无法访问

转载 作者:行者123 更新时间:2023-11-28 02:06:49 25 4
gpt4 key购买 nike

我有 2 个 HTML 文件,即 a.htmlb.html,一个 js 文件,即 do.js

以下是每个文件的内容:

a.html:

<head>
<script src="do.js" type="text/javascript"></script>
</head>
<body>
<button onClick = "doWork();">click me</button>
<iframe src = "b.html" id = "previewFrame"></iframe>
</body>

b.html(相关部分):

<div id = "container"></div>

do.js:

function doWork(){
var div = $('#previewFrame').contents().find('#container');
div.html("<input type = 'text' id = 'testElem' value = '12'><script>alert(document.getElementById('testElem').value);</script>");
}

当我运行上面的代码时,iframe 的内容被文本框替换,但是警报失败。

我收到“类型错误”,指出 document.getElementById... 为 null。

谁能告诉我上面的代码中缺少什么吗?

最佳答案

您正在使用 document 调用 Javascript 函数,但该对象来自父文档,而不是 iframe 的文档,请尝试使用:

function doWork(){
var a = $('#previewFrame').contents().find('body');
a.html("<input type = 'text' id = 'testElem' value = '12'><sc"+"ript>alert($('#previewFrame').contents()[0].getElementById('testElem').value);</scr"+"ipt>");
}

查看演示 here .

关于javascript - iframe 的 div 中的元素在当前代码中无法访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17654310/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com