Zserge / Lorca HTML представить, чтобы пойти функционал - PullRequest
0 голосов
/ 04 апреля 2019
Библиотека

github.com/zserge/lorca позволяет вам связывать функции go с javascript через протокол dev в chrome. При этом вы можете передавать аргументы в go func из браузера.

Я пытаюсь отправить HTML напрямую в go func вместо использования встроенного http-сервера из-за требований разработки. (Пожалуйста, не уходите от темы и не спрашивайте, почему бы не использовать сервер.)

Вот пример того, что я могу сделать:

var inputform string = `
<html>
    <body>
        <form action="/action_page.php">
            <input type="text" name="userinput">
            <input type="submit" onclick="golangfunc(userinput.value)">
        </form>
    </body>
</html>
`

func main(){
    ui, err := lorca.New("data:text/html,"+url.PathEscape(inputform), "", 480, 320)
    ui.Bind("golangfunc", golangfunc)
    defer ui.Close()
    <-ui.Done()
}

func golangfunc(input string){
    fmt.Println(input)
}

У меня есть произвольное количество полей ввода HTML, и поэтому я хотел бы передать форму HTML вместо одного значения ввода, но не уверен, как это сделать.

1 Ответ

0 голосов
/ 04 апреля 2019

github.com/zserge/lorca поддерживается функция JS от Go.Получить элементы формы HTML, используя ui.eval.

package main

import (
    "fmt"
    "github.com/zserge/lorca"
    "net/url"
)

var inputform string = `
<html>
    <body>
        <form action="/action_page.php">
            <input type="text" name="username" id="username">
            <input type="text" name="address" id="address">
            <input type="submit" onclick="golangfunc()">
        </form>
    </body>
</html>
`

func main(){
    ui, _ := lorca.New("data:text/html,"+url.PathEscape(inputform), "", 480, 320)
    ui.Bind("golangfunc", func() {
        username := ui.Eval(`document.getElementById('username').value`)
        address := ui.Eval(`document.getElementById('address').value`)

        fmt.Println(username, address)
    })
    defer ui.Close()
    <-ui.Done()
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...