Go 可以在其服务的 HTML 文档中捕获点击事件吗?

Can Go capture a click event in an HTML document it is serving?

我正在编写一个管理库存的程序。它根据来自 postresql 数据库的记录提供 html,或使用 html 形式写入数据库。

可以使用 <a></a> 标签或表单提交访问不同的功能(添加记录、搜索等),然后使用 http.HandleFunc() 调用功能,然后功能生成查询、解析结果并呈现这些到 html 个模板。

搜索功能将查询结果呈现为 html table。为了保持搜索结果页面的理想可用性和整洁性,我打算在那里只提供最相关的信息。但是,由于数据库中存储了更多详细信息,因此我也需要一种方法来访问这些信息。为了做到这一点,我想让每个 table 行都可以点击,例如在页面底部或侧面的状态区域中显示所选记录的详细信息。

我可以尝试遵循适用于 运行 其他功能的模式,即使用 <a></a> 标签和 http.HandleFunc() 来呈现新内容,但这并不完全我想要的有几个原因。

首先:无需离开搜索结果页面即可查看其他详细信息;没有太多的细节,以至于单条记录的完整数据应该无法在与搜索结果相同的页面上呈现。

其次:我希望整行都可以点击,而不仅仅是 table 单元格中的文本,这正是 <a></a> 标签带给我的。

在属性中使用从数据库返回的 ID,如 <div id="search-result-row-id-{{.ID}}"></div> 我可以处理单个记录,但我还没有找到一种方法来捕获 Go 中的点击。

在我 运行 关闭并在 javascript 中写下这个之前,有人知道在 Go 中严格执行此操作的方法吗?我并不是特别反对使用久经考验的 js 方法,但我很想知道没有它是否可以完成。

does anyone know of a way to do this strictly in Go?

正如其他人在评论中指出的那样,不,Go 无法捕获浏览器中的事件。

为此,您需要使用一些 JavaScript 向服务器(Go 运行的地方)发送网络请求以获取更多信息。

您还可以在首次提供页面时将所有必需的信息推送到浏览器,并且 hide/show 它基于 CSS/JavaScript 事件,但同样,这只是常规的 Web 开发,与去吧