html - 与用户输入完整共享当前html响应(原样)

标签 html go

我正在尝试实现类似于Go Playground的 share 按钮的功能。
单击名为share的按钮时,当前的HTML响应将保存到文件中。这还包括用户可以看到的所有内容。

到目前为止我可以做什么
-我可以成功将HTML页面保存到文件中。
-我可以使用HTTP Get从URL获取并保存整个页面。

注意事项
-我无法保存正在处理的当前网页。

到目前为止,这是我获取远程URL的代码:

func HTTPGet(url string, timeout time.Duration) (content []byte, err error) {
    request, err := http.NewRequest("POST", url, nil)
    if err != nil {
        return
    }

    ctx, cancel_func := context.WithTimeout(context.Background(), timeout)
    request = request.WithContext(ctx)

    response, err := http.DefaultClient.Do(request)
    if err != nil {
        return
    }
    defer response.Body.Close()

    if response.StatusCode != 200 {
        cancel_func()
        return nil, fmt.Errorf("INVALID RESPONSE; status: %s", response.Status)
    }

    return ioutil.ReadAll(response.Body)
}


希望这不会涉及手动操作DOM。

最佳答案

在客户的一些合作下,有几种方法可以做到。

如果要保存当前显示在客户端上的当前网页(具有当前表单值等),则必须在客户端使用Javascript进行操作。您可以获取文档,以某种形式对其进行序列化,然后将其发送到服务器以进行保存。

另一种方法是在服务器端再次生成HTML页面,但是该页面将不包含用户输入的数据或在客户端动态生成的任何HTML。

另一种方法是在客户端使用Javascript收集页面状态,包括表单值和代表任何动态生成的内容的数据,将其发送到服务器以保存,并根据需要重建页面。

关于html - 与用户输入完整共享当前html响应(原样),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59697238/

相关文章:

去 slice - 结束时不要 panic

html - 垂直对齐组合内的文本以在浏览器调整大小时垂直响应

html - 复选框 : how to display text?

Go 1.7 从 Windows 到 Linux/Ubuntu 的交叉编译

postgresql - 执行: "sqlboiler": executable file not found in $PATH

go - 无法使用 net.Conn.Read 从 UNIX 套接字读取

javascript - 带关键帧的 Css 过渡

Java-文件上传问题

javascript - 显示/折叠文本

json - 如何在 golang 中将 spanner 行提取为 Json 或 Parquet 格式?