好的,所以我想我又在这里喋喋不休..我在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工作正常。有什么想法,我在这里喋喋不休? 谢谢:]
答案 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中,因此在这方面经常会出现混淆。