如何获取要在URL末尾添加的id =“ text1”的值?

时间:2019-08-17 10:39:37

标签: javascript

我更是硬件专家,我的编程技能真的很烂。我试图通过反复试验和谷歌的帮助来创建东西。我正在帮助一些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>

请帮助!

2 个答案:

答案 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>