加载页面后如何获取嵌入内容?

时间:2019-05-29 04:48:47

标签: javascript html

我想在页面加载后获取嵌入对象的内容: 这是我的代码:

<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>

结果:数据=未定义

如何在加载页面后获取嵌入内容?

1 个答案:

答案 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/xmlapplication/xml之间是否合适!