2017-03-03 8 views
2

Onload、このHTAはFolderXに含まれるファイルをリストし、その名前をリストボックスに表示します。ファイルを選択すると、2番目のリストボックスにファイルレコード(単純なテキスト項目、たとえばitemA、itemBなど)が表示されます。代わりに、第1セットと第2セットの間にスペースを入れてレコードを2回リストします。 msgboxは、私がFLFLBox_onChangeで2回トリップしていることを示しているようです。なぜそれが起こっているのですか? 私はレコードを見ているファイルを示しているので、ファイルを選択解除したくないです(はい、別のボックスに入れることができますが、問題です)。おかげさまで オンザフライリストボックスをロードすると、重複したエントリが生成されます

<HTA:APPLICATION ID="FilelistBuilder" BORDER="thin" BORDERSTYLE="complex" maximizeButton="yes" minimizeButton="yes" /> 

    <script language=vbscript> 

    option explicit 
    dim forReading, forWriting 
    forReading = 1 
    forWriting = 2 
    dim strNewFile, objFSO, objFile, objFiles, strLine, objOption, oFile, colFiles, objFolder 
    dim objShell, oExec, strWD,intFileCount 
    dim strTargetFLFL 
    strTargetFLFL = "C:\FolderX" 

    Sub Window_Onload 
    'Creates an on-the-fly listbox of files 
      Set objFSO = CreateObject("Scripting.FileSystemObject") 
      Set objFolder = objFSO.getFolder(strTargetFLFL) 
      set colFiles = objFolder.files 
      intFileCount = 0 
        For Each oFile in colFiles 
         strLine = ofile.name 
        Set objOption = Document.createElement("OPTION") 
        objOption.Text = strLine 
        objOption.Value = strLine 
        FLFLBox.Add(objOption) 
        intFileCount = intFileCount +1 
       Next 

    End Sub 


    Sub FLFLBox_onChange 
    'Creates an on-the-fly list of file contents for selected file 
     dim strTargetFL, strContents, arrContents, ContentRecord 
     strTargetFL = strTargetFLFL & "\" & FLFLBox.value 
     msgbox "File Name: " & strTargetFL 
      Set objFile = objFSO.OpenTextFile(strTargetFL,forReading) 
      strContents = objFile.ReadAll 
      arrContents = split(strContents,vbnewline) 
      For Each ContentRecord in arrContents 
      Set objOption = Document.createElement("OPTION") 
      objOption.Text = ContentRecord 
      objOption.Value = ContentRecord 
       FLBox.Add(objOption) 
      Next 
    End Sub 




    sub Close_onclick 
    msgbox "The application will exit and any unsaved data will be lost" 
    window.close 
    end sub 

    </script> 

    </head> 
    <body> 
    <h1> ARPA </h1> 

    <h2> File List Builder</h2> 
    <BR> 

    <input type="button" name=Close value="Close"> 
    <br> 
    <p> 
    </p> 
    </div> 

    <div id="Action style="position:absolute;top:10%;left:30%"> 
    </div> 

    <div style="position:absolute;top:5%;left:60%"> 
    List of Files - Click to List Contents; 
    </div> 

    <div id="FileListFileList" style="position:absolute;top:10%;left:60%;right:100%"> 
    <select listbox name="FLFLBox" size="5" onChange="FLFLBox_OnChange"> 
    </select> 
    </div> 

    <div style="position:absolute;top:30%;left:60%"> 
    List File Contents 
    </div> 

    <div id="OneFileList" style="position:absolute;top:35%;left:60%;right:100%"> 
    <select listbox name="FLBox" size="10"> 
    </select> 
    </div> 

    <div id="FileEdit" style="position:absolute;left:60%"> 
    </div> 

    </form> 
    </body> 
    </html> 

答えて

2

あなたはFLFLBox_OnChangeがあるため、あなたがそれに与えられた名前で、それなしで実行関数としてあなたのselectタグでonChange="FLFLBox_OnChange"は必要ありません。それをselectタグに入れると、そのタグが2回実行されます。

<select listbox name="FLFLBox" size="5"> 

変更

<select listbox name="FLFLBox" size="5" onChange="FLFLBox_OnChange"> 

関連する問題