我需要將變數從批次檔傳遞到 html 輸入值。如果我將 a 設為%variable%
html 輸入值,它會傳回%variable%
但不是它的實際值。
我的程式碼:
<!-- :
:: textSubmitter.bat
@echo off
set "location=bob"
for /f "tokens=1-8 delims=," %%a in ('mshta.exe "%~f0"') do (
set "dossier=%%a"
set "occupation=%%b"
set "lieu=%%c"
set "dated=%%d"
set "datef=%%e"
set "ets=%%f"
set "type=%%g"
set "subdi=%%h"
)
echo "Dossier =%dossier%"
echo "Occupation =%occupation%"
echo "Lieu :=%lieu%"
echo "Date Debut : =%dated%"
echo "Date Fin : =%datef%"
echo "Entreprise : =%ets%"
echo "Type : =%type%"
echo "Subdi : =%subdi%"
pause
goto :EOF
-->
<html>
<head>
<title>Classement chantier</title>
</head>
<body>
<script language='javascript' >
function pipeText() {
var dossier=document.getElementById('dossier').value;
var occupation=document.getElementById('occupation').value;
var lieu=document.getElementById('lieu').value;
var dated=document.getElementById('dated').value;
var datef=document.getElementById('datef').value;
var ets=document.getElementById('ets').value;
var type=document.getElementById('type').value;
var subdi=document.getElementById('subdi').value;
var Batch = new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1);
close(Batch.WriteLine(dossier+','+occupation+','+lieu+','+dated+','+datef+','+ets+','+type+','+subdi));
}
</script>
Dossier : <input type='text' name='dossier' size='25' value='%location%'></input><br>
Occupation : <input type='text' name='occupation' size='25'></input><br>
Lieu : <input type='text' name='lieu' size='25'></input><br>
Date Debut : <input type='text' name='dated' size='25'></input><br>
Date Fin : <input type='text' name='datef' size='25'></input><br>
Entreprise : <input type='text' name='ets' size='25'></input><br>
Type : <input type='text' name='type' size='25'></input><br>
Subdi : <input type='text' name='subdi' size='25'></input><br>
<hr>
<button onclick='pipeText()'>Submit</button>
</body>
</html>
在 html 表單中,變數%location%
應傳回值“bob”,但它會傳回“ %location%
”。
<input type='text' name='dossier' size='25' value='%location%'>
如何將批次變數設為 html 輸入值以取得值“bob”?
答案1
結合其他幾個類似問題的答案,一個解決方案可能是:
在您的元素中新增一個
id
屬性(例如location
)input
。使用 ActiveX/Wscript讀取 的值,然後使用 JavaScript透過1
%location%
事件取代該值的預設值。input
window.onload
因此,本質上,您的程式碼可能類似於:
<script language='javascript'>
window.onload = function(e){
var envlocation = new ActiveXObject('wscript.shell');
envLocation = envlocation.ExpandEnvironmentStrings('%location%');
document.getElementById('location').value = envLocation
}
</script>
Dossier : <input type='text' id='location' name='dossier' size='25'></input><br>
1 document.onload
不幸的是,似乎在這裡不起作用。
答案2
謝謝,我得到了這樣的工作,但我需要安排下面的 javascript 程式碼:
<script language='javascript'>
window.onload = function(e){
var envlocation = new ActiveXObject('wscript.shell');
envLocation = envlocation.ExpandEnvironmentStrings('%dossier%');
document.getElementById('dossier').value = envLocation
envLocation = envlocation.ExpandEnvironmentStrings('%occupation%');
document.getElementById('occupation').value = envLocation
envLocation = envlocation.ExpandEnvironmentStrings('%lieu%');
document.getElementById('lieu').value = envLocation
envLocation = envlocation.ExpandEnvironmentStrings('%dated%');
document.getElementById('dated').value = envLocation
envLocation = envlocation.ExpandEnvironmentStrings('%datef%');
document.getElementById('datef').value = envLocation
envLocation = envlocation.ExpandEnvironmentStrings('%ets%');
document.getElementById('ets').value = envLocation
envLocation = envlocation.ExpandEnvironmentStrings('%type%');
document.getElementById('type').value = envLocation
envLocation = envlocation.ExpandEnvironmentStrings('%subdi%');
document.getElementById('subdi').value = envLocation }
</script>
任何幫助將不勝感激...