首页
学习
活动
专区
圈层
工具
发布

HTA和DOM
EN

Stack Overflow用户
提问于 2013-06-22 10:30:19
回答 2查看 4.5K关注 0票数 0

下面是我编写的原型代码,用于将特定文件夹中的文本文件的内容放入.hta文档的div中。

使用document.write我可以很容易地在文档上写,但我想把文本文件的内容写到特定的div。

当我尝试运行代码时,什么也没有发生。

代码语言:javascript
复制
<html>
<head>
<title>Notes</title>
<script language="vbscript">
Set fso = CreateObject("Scripting.FileSystemObject")
FileName = "C:\Documents and Settings\anamdev\Desktop\demo.txt"
Set fileObj = fso.GetFile(FileName)
Set ts = fileObj.OpenAsTextStream(1, -2)
Set objDiv = Document.getElementById("content")
objDiv = ts.ReadAll
Do While ts.AtEndOfStream <> True
    TextLine = ts.ReadLine
    Document.getElementById("content").innerHtml TextLine & "<br />"
Loop
ts.Close
</script>
</head>
<body>
<span id="head"></span>
<input type="button" value="Previous" name="pre" />
<input type="button" value="Next" name="nxt" />
<hr>
<div id="content">
</div>
</body>
</html>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-22 15:45:33

Cheran answer是正确的(+1),我将只附加一些我在代码中看到的其他问题。

代码语言:javascript
复制
Set objDiv = Document.getElementById("content")
objDiv = ts.ReadAll

以上是没有意义的。将Object设置为变量objDiv,并在下一行立即用String覆盖此变量。

无论如何,在ReadAll之后,你的TextStream已经达到了EOF,所以下一个循环什么也不做:

代码语言:javascript
复制
Do While ts.AtEndOfStream <> True
    TextLine = ts.ReadLine
    Document.getElementById("content").innerHtml TextLine & "<br />"
Loop

而且赋值也是错误的。

代码语言:javascript
复制
Object.Property Value   'incorrect
Object.Property = Value 'correct

简单地说,你可以这样做:

代码语言:javascript
复制
Set objDiv = Document.getElementById("content")
objDiv.innerHtml = ts.ReadAll
ts.Close
票数 3
EN

Stack Overflow用户

发布于 2013-06-22 14:28:28

问题是<script>中的代码是在解析页面时执行的。这意味着在脚本运行时,"content“元素不存在。我预计你实际上会得到一个"Object required“错误,不管是什么原因都没有显示出来。

至少有两种方法可以解决这个问题:

  1. 将脚本块移动到文档的末尾,就在关闭</body>标记之前:
  2. 将初始化代码包装在子例程中,并从window对象的onload事件处理程序中调用它:
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17246769

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档