0
这对你来说很简单。也许不适合我...表单提交 - Windows脚本主机
我只需要从脚本重新启动我的调制解调器。我试图按照我用来重启我的路由器的方式来做。这是模拟HTTP标题与下面的脚本和Windows脚本宿主(WScript的)执行它:
URL_Submit="http://192.168.100.1/goform/gscan";
ContentTypeSubmit="application/x-www-form-urlencoded";
ContentLengthSubmit="24";
POSTDATASubmit="SADownStartingFrequency=";
var WinHttpReq = new ActiveXObject("WinHttp.WinHttpRequest.5.1");
function send(URL_POST,CT,CL,CD)
{
WinHttpReq.open("POST", URL_POST, true);
WinHttpReq.SetRequestHeader("Content-Type", CT);
WinHttpReq.SetRequestHeader("Content-Length", CL);
WinHttpReq.send(CD);
};
function Submit()
{
send(URL_Submit,ContentTypeSubmit,ContentLengthSubmit,POSTDATASubmit)
};
Submit();
一个类似的脚本适用于我的路由器,但这个工作不为我的调制解调器。我实际用于重新启动我的调制解调器常规的方法是从它的管理面板,提交以下表格:
<html>
...
<body>
...
<form action="http://192.168.100.1/goform/gscan" method="POST">
<input name="SADownStartingFrequency"> <input value="Click here to restart" type="submit">
</form>
...
</body>
</html>
注:表格可在空白提交。它不是必填项。
使用任何ECMAScript实现模拟此表单提交以便能够从Windows Script Host执行它的正确方法是什么?
提前感谢您的时间。
Denik。
编辑:
我发现了一个办法做到这一点如下:
var doc = new ActiveXObject("htmlfile");
var form = doc.createElement("form");
var input = doc.createElement("input");
form.name = "gscan";
form.method = "POST";
form.action = "http://192.168.100.1/goform/gscan";
input.type = "text";
input.name = "SADownStartingFrequency";
doc.appendChild(form);
form.appendChild(input);
form.submit();
但我仍然有一个每次我提交表单的问题,打开Internet Explorer窗口,如我在我的问题中说,我需要在Windows Script Host上运行脚本,而不打开窗口。我想在后台运行它。
如果有人知道任何其他方式,请让我知道。谢谢。