Usando CEFSharp a editar <textarea>

lolikols:

Soy capaz de editar un cuadro de texto regular dentro de un iFrame en CefSharp de este modo:

Browser1.GetBrowser().GetFrame("iFrame1").ExecuteJavaScriptAsync("document.getElementById('ElementID').value=" + '\'' + "1234" + '\'');

Sin embargo, debido a que un área de texto no tiene un valor de:

<iframe id="iFrame1" name="iFrame1">
    <textarea name="txtareaname" id="txtareaname1">sometexthere</textarea>
</iframe>

Soy incapaz de ejecutar una línea similar de código para modificar el texto en el área de texto:

textarea.Browser1.GetBrowser().GetFrame("iFrame1").ExecuteJavaScriptAsync("document.getElementById('txtareaname1').value=" + '\'' + "1234" + '\'');

También he intentado:

textarea.Browser1.GetBrowser().GetFrame("iFrame1").ExecuteJavaScriptAsync("document.getElementById('txtareaname1').innertext=" + '\'' + "1234" + '\'');

¿Cómo ajusto mi código para editar esta área de texto?

Reza Aghaei:

OP : Sin embargo, debido a que textareano tiene un valor no soy capaz de ejecutar una línea similar de código para modificar el texto en el textarea.

La suposición es incorrecta, el establecimiento valuede atributos bien funciona para teaxtarea.

Usted sólo debe asegurarse de que el documento, incluyendo el iframe se ha cargado y se ha seleccionado el iframe correcta utilizando el nombre correcto y después de haber seleccionado la correcta área de texto utilizando Identificación correcta.

Ejemplo

Aquí es un ejemplo mínimo verificable completo que muestra cómo se puede encontrar el iframey establecer el valor de un textareainterior de la iframe.

Para que el ejemplo sea independiente de las fuentes de externos y hacer más fácil la verificación, en lugar de inicialización iframe utilizando su srcatributo, he inicializado iframemediante secuencias de comandos.

protected override void OnLoad(EventArgs e) {
    base.OnLoad(e);
    var content = new HtmlString(@"
    <!DOCTYPE html>
    <html>
    <body>
    <iframe id=""iFrame1"" name=""iFrame1"" src=""about:blank""></iframe>
    <script>
        var doc = document.getElementById('iFrame1').contentWindow.document;
        doc.open();
        doc.write('<html><head><title></title></head><body>' + 
        'Address:<br>' +
        '<textarea id=""myTextarea"">342 Alvin RoadDucksburg</textarea>' +
        '</body></html>');
        doc.close();
    </script>
    </body>
    </html>
    ");
    var browser = new ChromiumWebBrowser(content)
    { Dock = DockStyle.None, Size = new Size(400, 200), Location = new Point(8, 42) };
    Controls.Add(browser);

    var button = new Button() { Text = "Click Me", Location = new Point(8, 8) };
    Controls.Add(button);
    button.Click += (obj, args) => {
        browser.GetBrowser().GetFrame("iFrame1")
            .ExecuteJavaScriptAsync("document.getElementById('myTextarea').value=" +
            "'Fifth Avenue, New York City'");
    };
}

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=280972&siteId=1
Recomendado
Clasificación