Member 9923947 Ответов: 0

Программно-добавлена кнопка в HTA, не выполняющая подпрограмму при нажатии


Я пытаюсь программно добавить элемент кнопки в HTA. В качестве теста я написал следующий код. Кнопка " Button1 "добавляется в окно HTA, но когда я нажимаю на нее, она не запускает подпрограмму" subButtonClickedMsg". Никаких сообщений об ошибках не производится.

Я добавил две другие кнопки ("Button2 "и" Button3"), чтобы попытаться выяснить, что было не так.
"Элемент button2" называет "subButtonClickedMsg" подпрограмма не вопрос.
"Button3" вызывает подпрограмму "subChangeButton1ValueAttribute", которая:
1) изменяет значение атрибута значение "button1" на "значение button1 изменилось"
2) изменяет атрибут" onclick " на "subButtonClickedMsg" (во всяком случае, так было изначально)
3) отображает MsgBox, чтобы доказать, что атрибут" onclick "имеет значение"subButtonClickedMsg".

Когда я нажимаю на кнопку "Button3", код работает так, как ожидалось. Однако, когда я нажимаю на " Button1 "после нажатия" Button3"," Button1 "все еще не может запустить подпрограмму" subButtonClickedMsg". Опять же, никаких сообщений об ошибках не генерируется.

Я сделал поиск в Google и нашел некоторую информацию о методе "addEventListener". Поэтому я попытался добавить этот код в подпрограмму "subChangeButton1ValueAttribute", чтобы проверить его:

документ.метода getElementById("Кнопка1").метода addEventListener "на кнопке", "subMyButtonOnClick", ложные

но он произвел следующую ошибку сценария, когда я нажал на кнопку " Button3":

ошибка сценария
Объект не поддерживает это свойство или метод:
'document.getelementById (...). addEventListener'

Согласно этой ссылке на MSDN, "addEventListener" должен поддерживаться:

https://msdn.microsoft.com/en-us/library/ff975245(v=против 85). aspx

Я уже прокомментировал эту строчку.

Что я упускаю при попытке программно добавить кнопку, которая приводит к тому, что ее событие onclick не выполняет указанную подпрограмму?

Заранее спасибо за любую помощь.

Что я уже пробовал:

<html>
  <head>
    <title>HTATest2</title>

     <HTA:APPLICATION 
     ID="objHTATest"
     APPLICATIONNAME="HTATest"
     SCROLL="yes"
     SINGLEINSTANCE="yes"
     WINDOWSTATE="maximize"
     >
  </head>

  <script type="text/vbscript">

    Dim myButton

    Sub subButtonClickedMsg
      MsgBox "Button has been clicked."
    End Sub 'subButtonClickedMsg

    Sub subChangeButton1ValueAttribute
      'document.getelementById("Button1").addEventListener "onclick", "subMyButtonOnClick", false
      myButton.setAttribute "value","Button1 Value Changed"
      myButton.setAttribute "onclick","subButtonClickedMsg"
      MsgBox "myButton.getAttribute(""onclick"") = " & myButton.getAttribute("onclick")
    End Sub 'subChangeButton1ValueAttribute

    Sub Window_Onload()
      Set myButton = document.createElement("input")
      myButton.setAttribute "type","button"
      myButton.setAttribute "id","Button1"
      myButton.setAttribute "onclick","subButtonClickedMsg"
      MsgBox "myButton.getAttribute(""onclick"") = " & myButton.getAttribute("onclick")
      myButton.setAttribute "value","Button1"
      document.getElementById("myBody").appendChild(myButton)
    End Sub 'Window_Onload()

  </script>
  <body id=myBody>
    <input type=button id=idButton2 value=Button2 onclick=subButtonClickedMsg />
    <input type=button id=idButton3 value="Button3" onclick=subChangeButton1ValueAttribute />
  </body>
</html>

0 Ответов