使用 JavaScript 访问 <object> 数据
Access <object> data with JavaScript
我有一个这样的 <object>
标签:
<object id="text" data="file.txt"></object>
我可以得到这样的元素:
var text = document.getElementById("text");
现在,如何获取文本文件的内容?
这样做的目的是:
- 避免必须发出 XMLHttpRequest;
- 避免在代码中使用常量形式的文本数据;
- 保持原始形式的简单纯文本文件,没有 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>
我有一个这样的 <object>
标签:
<object id="text" data="file.txt"></object>
我可以得到这样的元素:
var text = document.getElementById("text");
现在,如何获取文本文件的内容?
这样做的目的是:
- 避免必须发出 XMLHttpRequest;
- 避免在代码中使用常量形式的文本数据;
- 保持原始形式的简单纯文本文件,没有 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>