簡體   English   中英

表單提交-Windows腳本宿主

[英]Form Submission - Windows Script Host

這對您來說很容易。 也許不適合我...

我只需要從腳本重新啟動調制解調器即可。 我正在嘗試以與重啟路由器相同的方式進行操作。 這是使用以下腳本模擬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執行該表單提交的正確方法是什么?

在此先感謝您的時間。

丹尼克

編輯:

我找到了一種執行此操作的方法,如下所示:

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上運行,而沒有打開窗口。 我想在后台運行它。

如果有人知道其他方式,請告訴我。 謝謝。

這是我發現的一種方法。 這對我來說很有效:

'modem_reboot.vbs
'For Cisco DPC2203 Modem rebooting

dim Browser
set Browser = WScript.CreateObject("InternetExplorer.Application")
Browser.Visible = false
Browser.Navigate "about:blank"
Browser.Document.Body.InnerHTML = _
"<form name=""reboot"" action=""http://192.168.100.1/goform/gscan"" method=""POST"">" + _
"<input name=""SADownStartingFrequency""> <input value=""Click here to restart"" type=""submit"">" + _
"</form>"

Browser.Document.reboot.Submit()

WScript.Sleep 5000

Browser.Quit

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM