首页 > 解决方案 > 使用 JavaScript / VB.Net 在不和谐中调用 HTML 代码

问题描述

我的问题很简单,我正在尝试使用java-script.Net编写文本并将其发送给一个人或服务器。通常,当我在站点上执行此操作时,您可以简单地调用脚本并在其中输入文本。例如,下面的脚本将在 youtube 搜索框中输入文本。

Form2.WebBrowser1.Document.GetElementById("search_query").SetAttribute("value", TextBox1.Text)

下面的脚本将在不和谐响应框中输入文本,但会立即消失。即使在 html 资源管理器中手动更改值然后单击响应栏输入它也会导致文本消失或恢复到原来的状态。

Dim elements2 = Form2.WebBrowser1.Document.GetElementsByTagName("textarea")
For Each element As HtmlElement In elements2
    If element.GetAttribute("className") = "textArea-2Spzkt textArea-2Spzkt scrollbarGhostHairline-1mSOM1 scrollbar-3dvm_9" Then
        element.Focus()
        element.SetAttribute("value", TextBox1.Text)
    End If
Next

原始 HTML:

在此处输入图像描述

环顾四周,discord 似乎有可以正确调用文本框的 javascript?我对如何解决这个问题以获得工作结果有点迷茫。如果解决方案是 javascript,我也会将其视为受人尊敬的回应。任何指针都非常感谢!

编辑:

我发现这个 javascript 能够更改响应框中的文本,但是一旦您单击文本框发送它,它就会消失/恢复。

document.getElementsByClassName("textArea-2Spzkt textArea-2Spzkt scrollbarGhostHairline-1mSOM1 scrollbar-3dvm_9").item("textContent").value="hello"

标签: javascripthtmlvb.netelementdiscord

解决方案


我试过下面的代码,它可以工作:</p>

    Dim element1 As HtmlElement
    Dim elements2 = Form2.WebBrowser1.Document.GetElementsByTagName("textarea")
    Dim text1 As String
    Dim text2 As String

    'text1 is the string you want to input with
    text1 = "ok it works again"
    text2 = text1 & "{ENTER}"

    'I find that there is only one element in this collection, so no need to use for each loop
    element1 = elements2.Item(0)
    element1.Focus()

    SendKeys.SendWait(text2)

推荐阅读