html - Windows XP 中的批处理 HTA 混合脚本错误
问题描述
我写了一个批处理 HTA 混合脚本。我用它来处理一些用户输入。它可以在 Windows 7 和 10 下运行。使用 Windows XP,我总是会收到一条错误消息:
document.getElementById; 为空或没有对象
也许有人有想法或可以告诉我我的错误在哪里?
这是脚本的一个小的可执行片段:
<!-- :: Batch section
@echo off
title Meldung
setlocal enableextensions disabledelayedexpansion
set message=""
set lastname=Dude
set firstname=Der
set userc=1234
:goon
for /F "tokens=1" %%a in ('mshta.exe "%~F0" test2 %userc% %lastname% %firstname% %message%') do (
set "button=%%a"
)
if "%button%" == "2" goto :end
echo %lastname%%time% >> logtext.txt
set message="successfully"
goto :goon
:end
goto :eof
-->
<HTML>
<HEAD>
<HTA:APPLICATION SCROLL="no" SYSMENU="no" ID="thisHTAID" >
<TITLE>Try</TITLE>
<SCRIPT language="JavaScript">
window.resizeTo(450,300);
window.moveTo(0,0);
// function handling test2 hta output
function myButton( selectedb ){
new ActiveXObject("Scripting.FileSystemObject")
.GetStandardStream(1)
.WriteLine( selectedb );
window.close()
};
function parseCommandline(commandLine) {
var rx = /"[^"]+"\s*?|\S+\s*?/g;
var args = [];
var match;
while (match = rx.exec(commandLine)) {
if (match[0].charAt(0) === '"') {
args.push(match[0].substring(1, match[0].length - 1));
} else {
args.push(match[0]);
}
}
return args;
}
// on window load select what div to show depending on command line
window.onload = function(){
var commandLine = thisHTAID.commandLine;
var args = parseCommandline(commandLine);
var test = args[1];
var testa = args[2];
var testb = args[3];
var testc = args[4];
var testd = args[5];
document.getElementById("number").innerHTML=testa;
document.getElementById("name").innerHTML=testb;
document.getElementById("firstname").innerHTML=testc;
document.getElementById("message").innerHTML=testd;
document.getElementById( test ).style.display='block';
};
</SCRIPT>
<style type="text/css">
.auto-style1 {
text-align: center;
font-family: Georgia, "Times New Roman", Times, serif;
}
.auto-style3 {
color: #008000;
text-align: center;
font-size: 12pt;
font-family: Georgia, "Times New Roman", Times, serif;
}
</style>
</HEAD>
<BODY>
<div id="test2" style='display:none'>
<h3 class="auto-style1">Process</h3>
<table style="width: 100%" >
<tr>
<td style="width: 150px"><strong>Number:</strong></td>
<td id="number"></td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td><strong>Name:</strong></td>
<td id="name"></td>
</tr>
<tr>
<td><strong>Firstname:</strong></td>
<td id="firstname"></td>
</tr>
</table>
<p></p>
<button onclick="myButton(1)" style="width: 90px; height: 40px; margin-right: 20px; font-size: 9pt; font-family: Georgia, "Times New Roman", Times, serif; "><b>Write</b></button>
<button onclick="myButton(2)" style="width: 90px; height: 40px; margin-right: 10px; font-size: 9pt; font-family: Georgia, "Times New Roman", Times, serif; "><b>End</b></button>
<p></p>
<p class="auto-style3" id="message"></p>
</div>
</BODY>
</HTML>
解决方案
推荐阅读
- python - 如何读取我刚刚在串行端口(Python)中写入的值?
- java - 如何获取特定的文档 ID Firestore?
- php - 如何修复 PHP 7.3 中的 imagick 库缓存耗尽问题?
- javascript - 如何使用 ngModel Angular 在输入文本中使用管道
- swift - 是否可以观察presentingViewController的变化?
- php - 使用 laravel 进行多张图片检索
- google-ads-api - 如何找到特定关键字的 SearchImpressionShare?
- directx - 一次将 NV12 复制到 ID3D11Texture2D
- c# - 我卡在找不到错误方法,找不到方法:'Void EPS.BAL.ViewModel.PersonalTaskModel.set_PendingTaskStatus(System.Web.Mvc.SelectList)
- sql - SQL Server 查询以获取前置位置 No