【发布时间】:2021-12-29 08:02:59
【问题描述】:
当他访问我们基于浏览器的应用程序时,我需要在幕后获取用户详细信息。所以需要创建一个即插即用的 JavaScript 组件,它可以很容易地嵌入到网页的标题中。捕获数据点的逻辑应该位于服务器端。因此,可以从此组件调用 API,然后可以在该 API 中利用“User-Agent”标头来获取数据点。
但是,并非所有数据点都可以从 User-Agent 中识别出来,例如语言、屏幕分辨率、颜色深度等。捕获这些属性需要在客户端执行 JavaScript。
两种方法:
- 使用重定向(如果允许且组件是 iFrame,则不会重新加载父页面)
当组件最初加载时,将其重定向到另一个页面,该页面将包含将捕获这些详细信息的 JavaScript,它将自动提交并发送到将使用数据点的 API,然后重定向到带有标志的组件不再执行捕获活动。
- 无重定向
因此,我正在考虑的方法是有一个组件,在该组件中,在 onLoad 事件期间,将调用 API,并将 JavaScript 代码(从客户端捕获数据点)作为响应返回。然后这个返回的 JavaScript 将在客户端执行,结果将保存在隐藏字段中。在这个组件中会有一个允许按钮(需要用户同意的一部分),当点击它时,隐藏字段中的数据将被提交给 API。
请查看该方法,如果它听起来不错且可行,请告诉我。
【问题讨论】:
-
请访问help center,使用tour查看内容和How to Ask。做一些研究,搜索关于SO的相关主题;如果您遇到困难,请发布您尝试的minimal reproducible example,注意输入和预期输出,最好在Stacksnippet
标签: javascript html ajax rest