我正在制作一个 hta 应用程序,我正在尝试添加一个选项来更改配色方案。我一直在尝试在标签中使用变量。例如:Color1 而不是黑色等.. 但一切都只是默认颜色
这是我在 vbs 部分写的部分内容:
Sub changecolor
Colorbutton = gray
Colorbuttontext = black
Colortextbox = black
Colortext = aqua
End sub
这是我的 HTML 片段:
<input type="text" color="Colortext">
<input type="button" color="Colorbutton">
我已经有一个使用 onChange="changecolor"的下拉菜单,并且我已经测试过并且我知道它会到达子目录
我尝试放置 Colortext.value 或 Colorbutton.value,但所有内容仍然更改为默认颜色。标签是否无法识别该变量,因此它只是跳过它并恢复为默认颜色?
如果有人知道如何解决这个问题请告诉我,谢谢!
P.s.我是个新手,所以如果你能让答案尽可能简单,那就太好了,再次感谢
最佳答案
您需要使用 DOM API 来操作网页,并且元素的视觉外观由 CSS 控制,尽管一些旧的表示属性仍然有效(例如 <body background>
)。
我建议在所有可能的情况下都使用 JavaScript 而不是 VBScript,不仅是因为语法更具表现力,而且与 VBScript 的有限类型系统相比,其基于原型(prototype)的特性带来了更大的灵活性和编程选项。
您可以像 VBScript 一样在 HTA 中使用 JavaScript,只需使用 <script type="text/javascript">
而不是<script language="VBScript">
.
请注意,您无法在 HTA 中可靠地使用“边缘模式”,因此过去几年浏览器中的新开发将无法可靠地工作,例如新的 CSS3 效果或 DOM 更改。当您处于 Edge 模式时,HTA 特定的标记将被 HTA shell 忽略,因此您无法在 Edge 模式下设置自定义窗口图标或标题栏文本(我觉得这是一个错误,但 AFAIK Microsoft 没有计划修复)这个)。
在 JavaScript 中,你可以这样做:
<script type="text/javascript">
window.onload = function() {
var colorButton = document.getElementById("colorButton");
colorButton.onclick = function() {
var textInput = document.getElementById("textInput");
textInput.style.color = "black"; // foreground (text) color
textInput.style.backgroundColor = "blue";
};
};
</script>
<input type="text" id="textInput" />
<button id="colorButton">Click me</button>
关于html - 如何在html标签中使用vbs变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32644052/