将当前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响应使用该数据重建页面。对不起,我没有示例。从来没有和地鼠一起工作过。我自己会这样做,只保存表单数据和页面状态,并根据需要重建页面。这实际上是最相关的方法。如果你能回答这个问题,我会接受的。