我更是硬件专家,我的编程技能真的很烂。我试图通过反复试验和谷歌的帮助来创建东西。我正在帮助一些GFX- / Ad-Designers,他们基本上会创建东西,将其放置在网站上,并且必须通过多个浏览器来运行这些网站。我正在尝试减少手动操作。
这是在HTA中运行的。就像我说的那样,我不是编程人员,这是我可以轻松使用= /的东西,也许其他语言也可以轻松地做到这一点...但是正如所说的...
tl; dr
如何获取id =“ text1”的值添加到URL的末尾
shell.run(“ Firefox https://www.example.com=(text1.value)”);不起作用。
如果我手动更改URL,我确实可以工作,但是比起我没有方便的输入字段和手动更改URL……我想广告制作人会弄乱事情。
所以,那是我到目前为止所做的……但是我无法解决。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
<title>Sub-Site Automation</title>
<hta:application applicationname="Run test on browsers" scroll="yes" singleinstance="yes">
<script type="text/javascript">
function openURL()
{
var input = document.getElementById("text1");
/* console.log(input); // Log
*/
var inputValue = input.value;
/* console.log(inputValue); // Log2
*/
var shell = new ActiveXObject("WScript.Shell");
shell.run("Firefox https://www.example.com=(text1.value)");
shell.run("Chrome https://www.example.com=(text1.value)");
shell.run("file:///C:\Users\*\AppData\Local\Vivaldi\Application\vivaldi.exe https://www.example.com=(text1.value)");
}
</script>
</head>
<body>
<input type="text" id="text1" Name="text1" value="Place ID of subwebsite here"><br>
<input type="submit" Value="Open in all Webbrowsers" onclick="openURL()">
</body>
</html>
请帮助!
答案 0 :(得分:0)
正如我在评论中提到的那样,答案就在您的代码本身中。
查看以下行:
// This line gets the element you want
var input = document.getElementById("text1");
// This line gets it's value. You need this value
var inputValue = input.value;
您需要在其中替换变量inputValue
,而不是使用text1.value
。
所以您的功能如下:
function openURL() {
var input = document.getElementById("text1");
var inputValue = input.value;
var shell = new ActiveXObject("WScript.Shell");
shell.run("Firefox https://www.example.com=("+inputValue+")");
shell.run("Chrome https://www.example.com=("+inputValue+")");
shell.run("file:///C:\Users\*\AppData\Local\Vivaldi\Application\vivaldi.exe https://www.example.com=("+inputValue+")");
}
答案 1 :(得分:0)
问题在于您没有引用ID为text1的元素,因此无法访问其值。第二个问题是,您尝试访问字符串文字内部的变量,该变量可以在es5中使用字符串串联解决,或者在较新的ecmascript版本中使用模板文字解决。
根据输入值,还应该使用encodeURIComponent,以使所得的URL有效。 一个可行的版本如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
<title>Sub-Site Automation</title>
<hta:application applicationname="Run test on browsers" scroll="yes" singleinstance="yes">
</head>
<body>
<input type="text" id="text1" Name="text1" value="Place ID of subwebsite here"><br>
<input type="submit" Value="Open in all Webbrowsers" onclick="openURL()">
<script type="text/javascript">
function openURL()
{
var text1 = document.getElementById("text1");
var shell = new ActiveXObject("WScript.Shell");
shell.run("Firefox https://www.example.com=" + text1.value);
shell.run("Chrome https://www.example.com=" + text1.value);
shell.run("file:///C:\Users\*\AppData\Local\Vivaldi\Application\vivaldi.exe https://www.example.com=" + text1.value);
}
</script>
</body>
</html>