0

好的,所以我想我又在这里 derping 了。我在 HTA(用于 Intranet 应用程序)中使用此代码,而不是仅使用普通的 HTML 页面。当我“提交”我的代码时,我收到错误消息“对象不支持此属性或方法在线:24(这是我关闭文件的位置(通过 activexobjects)

HTML 页面使用:

<input name="Button1" type="button" value="Submit" onclick="getFormContent()" />

我的 Javascript 文件(外部 .js 页面):

// Global Variables First!
var AllFormContent
var ManagerValue
function managerValueTrue(ManagerValue) {
ManagerValue = "Yes"
}
function managerValueFalse(ManagerValue) {
ManagerValue = "No"
}

function getFormContent(ManagerValue) {
var Mudkips = document.getElementById('ManagerName');
var ManagerName = Mudkips.options[Mudkips.selectedIndex].text;
var RandomText = document.getElementById('RandomText').value;
var Comment = document.getElementById('Comments').value;
AllFormContent = ManagerName + ", " + ManagerValue + ", " + RandomText + ", " + Comments
writeMyFile();
}

 function writeMyFile(AllFormContent) {
var filesys = new ActiveXObject("Scripting.FileSystemObject");
var filetxt = filesys.OpenTextFile("C:\\MyFile.csv", 8) ;
filetxt.WriteLine(AllFormContent);
filetxt.Close;
}

“第 24 行”指的是“filetext.close”,尽管我想它可能与“AllFormContent”或前一行有关?我已经测试了代码,我知道我可以使用 writeMyFile 函数,我知道 ActiveXObject 工作正常..关于我在这里使用什么的任何想法?谢谢 :]

4

1 回答 1

0

正如每个人在评论中建议但没有回答的那样,只需在 writeMyFile() 处为 Close 添加括号即可。

function writeMyFile(AllFormContent) {
    var filesys = new ActiveXObject("Scripting.FileSystemObject");
    var filetxt = filesys.OpenTextFile("C:\\MyFile.csv", 8) ;
    filetxt.WriteLine(AllFormContent);
    filetxt.Close();
}

CloseScripting.FileSystemObjectJavaScript 中的一种方法,而它更像是 VBScript 的子过程。要在 JavaScript 中调用函数和方法,您必须用括号关闭引用,而在 VBScript 中,没有必要Sub用括号调用 a 并且使用多个params它甚至会给出错误(我认为?)。

JScript 和 WScript 的 ActiveXObjects 的文档并不多,其中大部分都包含在 VBScript 中,因此在这方面经常存在混淆。

于 2013-01-17T02:36:52.073 回答