iframe中的Javascript getElementById
401是我想在iframe中得到的值iframe中的Javascript getElementById,javascript,html,iframe,Javascript,Html,Iframe,401是我想在iframe中得到的值 <iframe id="meal" src="about:blank" name="re"> <td id="calories3">401</td> </iframe> 但它说“测试”是未定义的 当我在控制台中执行typeof(测试)时,它会显示“object” 我不知道为什么我的测试是整个“401” 如何获取号码?您需要访问节点的innerHTML,而不是节点本身。尝试window.a
<iframe id="meal" src="about:blank" name="re">
<td id="calories3">401</td>
</iframe>
但它说“测试”是未定义的
当我在控制台中执行typeof(测试)时,它会显示“object”
我不知道为什么我的测试是整个“401
”
如何获取号码?您需要访问节点的innerHTML,而不是节点本身。尝试
window.alert(test.innerHTML)
请参见iframe内容是否与您的页面位于同一域下?如果iframe内容来自您的域之外,您将无法访问它。我认为您不能像这样直接将子节点粘贴到iframe标记中。您需要将内容实际加载到iframe中 如果运行
console.log(iframe.childNodes)代码>您将看到它实际上返回一个文本对象,而不是td元素。
如果运行console.log(测试)
它在控制台中打印出null
,并且typeof null
==object。这是有效的HTML吗?我不认为你可以使用这样的
标签。此外,您不能将
置于
之外(或者,也不能是
)。最后,test.value
将不起作用,因为
没有value
属性(主要用于
s),您实际上需要test.innerText
或test.textContent
。您能在页面上显示实际的HTML吗?
var iframe = document.getElementById('meal');
var frameDoc = iframe.contentDocument || iframe.contentWindow.document;
var test = frameDoc.getElementById('calories3');
window.alert(test.value);