0

さて、私はここでまたふざけていると思います..通常の HTML ページを使用する代わりに、HTA (イントラネット アプリケーション用) でこのコードを使用しています..コードを「送信」すると、エラー メッセージが表示されます。 「オブジェクトは次の行でこのプロパティまたはメソッドをサポートしていません: 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();
}

Closeは JavaScript のメソッドですが、Scripting.FileSystemObjectVBScript のサブプロシージャに似ています。JavaScript で関数とメソッドを呼び出すには、括弧で参照を閉じる必要がありますが、VBScript では括弧で a を呼び出す必要はなくSub、複数のparams場合でもエラーが発生します (私は思いますか?)。

JScript と WScript の ActiveXObjects に関するドキュメントは多くありません。そのほとんどは VBScript でカバーされているため、この点で混乱が生じることがよくあります。

于 2013-01-17T02:36:52.073 に答える