使用 JavaScript 访问 <object> 数据

Access <object> data with JavaScript

我有一个这样的 <object> 标签:

<object id="text" data="file.txt"></object>

我可以得到这样的元素:

var text = document.getElementById("text");

现在,如何获取文本文件的内容?

这样做的目的是:

  1. 避免必须发出 XMLHttpRequest;
  2. 避免在代码中使用常量形式的文本数据;
  3. 保持原始形式的简单纯文本文件,没有 JSON 或特殊格式,以供代码访问并成为字符串变量。

以同样的方式,您可以在文档中添加 <img><audio> 标签,然后访问图像/声音,仅适用于文本文件。

PS:我几乎可以肯定 <object> 标签不是这个的理想标签。这就是我试图完成我所需要的。

对于这样的事情,我通常更喜欢 AJAX。你能做这样的事吗?

var textContent = '';
var textRequest = new XMLHttpRequest();
textRequest.open('GET','file.txt');

textRequest.onreadystatechange = function() {
    if (textRquest.readystate == 4 && textRequest.status == 200) {
        textContent = textRequest.responseText   
    }
}

textRequest.send();

使用对象元素有什么原因吗?

您可以在隐藏的 iframe 中加载文本文件并访问其中的内容:

<html>
    <head>
        <script type="text/javascript">
            function gettext() {
                alert(document.getElementById('ifr').contentDocument.body.innerText);
            }
        </script>
    </head>
    <body>
    <iframe id="ifr" style="display:none" src="test.txt" onload="gettext()"></iframe>
    </body>
</html>