Object不支持JavaScript中的此属性或方法

时间:2012-07-14 19:51:12

标签: javascript html activex hta

好的,所以我想我又在这里喋喋不休..我在HTA(用于内部网应用程序)中使用此代码而不是仅使用普通的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工作正常。有什么想法,我在这里喋喋不休? 谢谢:]

1 个答案:

答案 0 :(得分:0)

正如大家在评论中所建议但没有回答的那样,只需在writeMyFile()中将parantheses添加到Close。

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

Close是JavaScript中Scripting.FileSystemObject的一种方法,而它更像是VBScript的子过程。要在JavaScript中调用函数和方法,您必须使用parantheses关闭引用,而在VBScript中,不必使用parantheses调用Sub并且使用多个params它甚至会出错(我认为?) 。

对于JScript和WScript的ActiveXObjects,没有很多文档,其中大部分内容都包含在VBScript中,因此在这方面经常会出现混淆。