Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将当前html响应(原样)与完整的用户输入共享_Html_Go - Fatal编程技术网

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

将当前html响应(原样)与完整的用户输入共享,html,go,Html,Go,我正在尝试实现类似于围棋场按钮的功能。 单击名为share的按钮时,当前HTML响应将保存到文件中。这还包括用户可以看到的一切 到目前为止我能做什么 -我可以成功地将HTML页面保存到文件中。 -我可以使用HTTP get从URL获取并保存整个页面 注意事项 -我无法保存当前正在处理的网页 这是我到目前为止获取远程URL的代码: func-HTTPGet(url字符串,超时时间.Duration)(内容[]字节,错误){ 请求,err:=http.NewRequest(“POST”,url,ni

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

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

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

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

func-HTTPGet(url字符串,超时时间.Duration)(内容[]字节,错误){
请求,err:=http.NewRequest(“POST”,url,nil)
如果错误!=零{
返回
}
ctx,cancel_func:=context.WithTimeout(context.Background(),timeout)
请求=请求。WithContext(ctx)
响应,错误:=http.DefaultClient.Do(请求)
如果错误!=零{
返回
}
延迟响应。Body.Close()
如果response.StatusCode!=200{
取消函数()
返回nil,fmt.Errorf(“无效响应;状态:%s”,响应.status)
}
返回ioutil.ReadAll(response.Body)
}

希望这不会涉及手动处理DOM。

有几种方法可以做到这一点,需要客户机的一些合作


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

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


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

如果要保存当前网页在客户端显示时的状态(使用当前表单值等),您必须在客户端使用Javascript来实现这一点。您可以获取文档,以某种方式对其进行序列化并将其发送到服务器进行保存。另一种方法是在服务器端再次生成HTML页面,但不包含用户输入的数据,也不包含在客户端动态生成的HTML。当然,您只能保存数据来重建页面(表单值等),并根据需要重新生成HTML。@BurakSerdar,这个项目实际上使用GopherJs。因此我可以与javascript交互。如果你有一个javascript的例子,我想看看。谢谢你的指针。我可以将div数据保存到服务器数据库中,然后使用正常的Golang响应使用该数据重建页面。对不起,我没有示例。从来没有和地鼠一起工作过。我自己会这样做,只保存表单数据和页面状态,并根据需要重建页面。这实际上是最相关的方法。如果你能回答这个问题,我会接受的。