【发布时间】:2017-07-10 15:54:01
【问题描述】:
我正在尝试使用 VBScript 作为语言在 HTA 应用程序中生成 HTML 页面。
我似乎无法设置元素名称属性。除设置名称的代码外,此代码均有效。我在最后输出了 frmMenu.InnerHTML。
set selectApp = document.createElement("select")
selectApp.ID = "selApplication"
selectApp.name = "selApplication"
frmMenu.appendChild(selectApp)
Set selectApp.onchange = GetRef("Application_Change_Event")
我使用了 selectApp.Name = "selApplication",但也没有用。
这是整个 Sub()
GetRef("CycleMappingPage")
CycleMappingPage()
Sub CycleMappingPage()
Set label1 = document.createElement("label")
label1.innerHTML = "Application: "
frmMenu.appendChild(label1)
set selectApp = document.createElement("select")
selectApp.ID = "selApplication"
selectApp.name = "selApplication"
frmMenu.appendChild(selectApp)
Set selectApp.onchange = GetRef("Application_Change_Event")
Set br1= document.createElement("br")
frmMenu.appendChild(br1)
Set br2 = document.createElement("br")
frmMenu.appendChild(br2)
Set label2 = document.createElement("label")
label2.innerHTML = "Cycle: "
frmMenu.appendChild(label2)
Set selectCycle = document.createElement("select")
selectCycle.setAttribute "name", "selCycle"
frmMenu.appendChild(selectCycle)
Set br3= document.createElement("br")
frmMenu.appendChild(br3)
Set br4 = document.createElement("br")
frmMenu.appendChild(br4)
Set inputButtonGenMap = document.createElement("input")
inputButtonGenMap.setAttribute "type", "button"
inputButtonGenMap.setAttribute "name", "btnRun"
inputButtonGenMap.setAttribute "value", "Generate Map"
frmMenu.appendChild(inputButtonGenMap)
Set inputButtonGenMap.onclick = GetRef("GenerateMap")
Set br5= document.createElement("br")
frmMenu.appendChild(br5)
Set br6 = document.createElement("br")
frmMenu.appendChild(br6)
Set inputButtonMainMenu = document.createElement("input")
inputButtonMainMenu.setAttribute "type", "button"
inputButtonMainMenu.setAttribute "name", "btnMainMenu"
inputButtonMainMenu.setAttribute "value", "Main Menu"
frmMenu.appendChild(inputButtonMainMenu)
Set inputButtonMainMenu.onclick = GetRef("LoadMainMenuPage")
msgbox frmMenu.innerHTML
End Sub
【问题讨论】:
-
我相信答案是不支持name属性,应该使用id属性。
-
表单控件和 (i)frame 元素确实支持名称属性。问题不清楚,问题究竟是如何发生的?在显示
frmMenu的内部 HTML 的消息框中看不到 select 元素的 name 属性? -
没错。而且我不能使用 name 属性来识别元素,因为它从不关联。还有其他问题,比如使用 DOM 创建的输入框默认是文本,但是使用 text 属性无法识别,因为它不粘。 HTA 是旧技术......它已经过时并且没有得到很好的支持。很失望,它没有得到更好的支持。
-
HTA 和它背后的 IE 一样工作,HTML 或 DOM 应该没有任何问题,至少除了通常的 IE 行为之外没有任何问题。我不熟悉 VBScript,因此我不能说您的代码是否有问题。不过,DOM 部分看起来还不错。
-
顺便说一句。
input元素没有text属性(option有),input有value...