【问题标题】:IE. Document.items.all does not work htaIE。 Document.items.all 不起作用 hta
【发布时间】:2016-12-13 13:46:33
【问题描述】:

我正在制作一个用于在我们的共享点上生成新项目项的工作工具。 在共享点上,我们有一个需要填写的表格,并确定我使用 IE.Document.All.Item("id").value=value 命令的表格的文本字段。

它在单独的 vbs 文件中工作,但是当我尝试从 hta 启动它时,它会在 IE.Documents.All.item 命令处阻塞。有人知道怎么解决吗?

代码如下(语言:vbscript):

Sub SendProjectData
   Set IE = CreateObject("InternetExplorer.Application") 
   set WshShell = CreateObject("WScript.Shell")  
   IE.Navigate "https://sharepointpage" 
   IE.Visible = true
   sleep1 6000 'external defined sleep command'

   IE.Document.All.Item("projectid").Value = "projectname" 
   WshShell.AppActivate "IE" 
   WshShell.SendKeys "{ENTER}"
End Sub

【问题讨论】:

    标签: forms vbscript hta autofill


    【解决方案1】:

    嗯,我和我一起工作:

    oIe.document.getElementById("testMsgBox").value = "hallo"
    

    oIE.document.all.testMsgBox.value = "hallo"
    

    也许这有帮助,莱因哈德

    【讨论】:

    • 嗨莱因哈德,谢谢你的回复。但是,它似乎不起作用,因为它仍然提示错误:“未指定的错误”。也许是“.document.”,也许是在使用hta时没有为vbscript定义的
    • 我只是被难住了。文本字段在 hta 内吗?然后您可以仅使用其 ID 或名称访问该元素,因此 'projectid.Value = "projectname"' 应该可以工作。还是其他 html 文件中的文本字段,您想使用 vbs 代码从 hta 文件中填充它?
    • 嗨 ReFran,文本字段位于第三方网站中,我尝试用我自己本地 hta 的输入来填充它。我通过将输入保存在 txt 文件中并在 hta 环境之外的网站上运行填充文本字段的 vbs(现在通过解析文本文件)来解决它
    • 我通过将脚本复制粘贴到单独的 vbs 文件中来解决它。当我使用 shell 从 hta 运行文件时。 IE.Document.All.Item() 现在可以正常工作了。
    【解决方案2】:

    这应该可行。用IE11在Win10下测试:

    首先是 HTML 测试文件:

    <html>
        <head><title>MyInputFile</title></head>
        <body>
        <h1>IE with Input field</h1>
        <input type="text" id="myText" value="Default text" size="20">
        </body>
    </html>
    

    现在将HTA文件填入html文件:

    <html>
    <head>
    <title>Hypertext-Application Demo</title>
    <HTA:APPLICATION ID="oHTA">
    <script language="vbscript">
        sub Window_Onload
            self.resizeto 500,200
            self.MoveTo 50,50
        End Sub
    
        Sub fillHta()
            myText.value = "New Text"
        End Sub
    
        Sub startAndFill()
            set wsh = CreateObject("WScript.Shell")
            'Set oIE = CreateObject("InternetExplorer.Application")
            Set oIE = GetObject("new:{D5E8041D-920F-45e9-B8FB-B1DEB82C6E5E}")
            oIE.Navigate "d:\MyInputFile.html"
            oIE.Visible = true
            Do: Loop Until oIE.Busy = False
            Do: Loop Until oIE.Document.ReadyState = "complete"
    
            oIe.document.getElementById("myText").value = "New Text" 'use this
            x = oIe.document.getElementById("myText").value
            oIE.document.all.myText.value = x & "; New Text2" 'or this
        End Sub
    </script>
    </head>
    <body bgcolor="#99CCFF">
    <p>Simple Demo of Hypertext Applikationen</p>
    <input type="button" value="Fill HTA input field" onclick="fillHta()">
    <input type="text" id="myText" value="Default text" size="20">
    <p><input type="button" value="start and fill IE field" onclick="startAndFill()"> D:\MyInputFile.html</p>
    </body>
    </html>
    

    享受吧,莱因哈德

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-24
      • 2015-05-15
      • 2018-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多