1

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

以下是每个文件的内容:

一个.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>

做.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... 为空。

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

4

1 回答 1

1

您正在使用 调用 Javascript 函数document,但此对象来自父文档,而不是 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>");
}

在此处查看演示。

于 2013-07-15T12:49:44.473 回答