如何检测 Iframe 内的用户点击
挑战:
确定用户是否在 iframe 内单击可能具有挑战性,尤其是当 iframe 源自不同域时(称为跨域 iframe)。
解决方案:
要检测 iframe 内的点击,可以采用巧妙的解决方法,使用位于直接上方的不可见 div iframe 的边界。当用户点击 iframe 内的任意位置时,div 会拦截点击事件并将其转发到 iframe。
实现:
在主文档中,创建以下内容elements:
<div>
然后,插入以下 JavaScript代码:
const message = document.getElementById("message"); window.focus(); window.addEventListener("blur", () => { setTimeout(() => { if (document.activeElement.tagName === "IFRAME") { message.textContent = "clicked " + Date.now(); console.log("clicked"); } }); }, { once: true });
说明:
此技术提供了一种可靠的方法来跟踪用户是否在 iframe 内单击,即使是跨域也是如此。
以上是如何可靠地检测跨域 iframe 内的点击?的详细内容。更多信息请关注PHP中文网其他相关文章!