我想在页面加载后获取嵌入对象的内容: 这是我的代码:
<div id="data" >
<embed id="tablefull" src="XMLFile.xml">
</div>
<script type="text/javascript">
document.addEventListener('DOMContentLoaded', function () {
// your code here
var element = document.getElementById('tablefull');
element.addEventListener('load', loadData, false);
}, false);
function loadData() {
var data = document.getElementById('tablefull').contentDocument;
alert(data);
}
</script>
结果:数据=未定义
如何在加载页面后获取嵌入内容?
答案 0 :(得分:0)
因为您的代码,您将获得undefined
data = document.getElementById('tablefull').contentDocument
您要读取的属性不存在。这样就返回了undefined
。
如果您要访问文件的源- MLFile.xml ,则可以尝试以下方法:
获取getSVGDocument()
函数的返回值:
const r = document.getElementById('tablefull').getSVGDocument()
这里r
将是XMLDocument { … }
,由于它有子级,我们可以访问r.children
或更好的r.firstChild
,这将给我们:
<note>
最后,您可以使用任何其他HTML标记:r.firstChild.outerHTML
,这为我们提供了
> r.firstChild.outerHTML
"<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>"
已在Firefox file.xml
上进行了测试:
<?xml version="1.0" encoding="UTF-8"?>
<note id="note">
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
和html代码:
<embed id="tablefull" src="file.xml" type="text/xml">
注意
我不确定text/xml
和application/xml
之间是否合适!