HTA - 未终止的字符串包含错误

HTA - Unterminated string contants error

在我的 HTA 文件中,我试图实现文件浏览器按钮,但出于某种原因,HTA 抱怨未终止的字符串常量。我使用 vbs 文件检查了代码,它有效但在 HTA

中无效

代码片段

        Sub StartExec_OnClick           
            Dim objShell, objFile, BrowseForFile

            Set objShell = CreateObject("Shell.Application")
            aa = "about:<input type=file id=FILE><script>FILE.click();new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).WriteLine(FILE.value);close();resizeTo(0,0);</script>"
            Set objFile = objShell.Exec("mshta.exe " & Chr(34) & aa & Chr(34))
            BrowseForFile = objFile.StdOut.ReadLine

            Set objFile=Nothing
            Set objShell=Nothing
        End Sub
...;resizeTo(0,0);</" & "script>"

您遇到问题是解析器错误地处理了脚本的结束位置,不是您用引号引起来的脚本,而是包含字符串的脚本。字符串中包含的 </script> 标记被视为外部脚本的结束标记。只需拆分字符串常量即可避免它。