与this question相关的是,启动websocket (以便保持套接字打开和轮询)后启动自定义协议的解决方法是使用iframe元素并将src设置为自定义协议。但是,如果用户单击设置src的按钮太快(即他们触发自定义协议的频率过高),FF会记录此警告:
外部协议的iframe由于缺少用户激活而被阻止,或者是因为上次加载iframe之后没有足够的时间。
我似乎找不到任何关于:
。
有谁知道这个警告到底意味着什么,或者这些要点中的一个是什么,以及我们如何绕过限制,允许在FF中启动自定义协议(而不刷新页面或导致弹出)?
我尝试过让iframe预先存在于页面上,并动态地设置src,同时动态地使用src创建iframe,但最后都会记录相同的警告。
发布于 2022-01-11 20:39:08
用户激活是指由用户触发的事件,如鼠标或键盘事件。这类似于弹出阻止程序的工作方式。
我怀疑你会发现“足够的时间”限制文档--程序员不想告诉恶意软件作者如何绕过这个限制。
当用户单击按钮时,您会说正在这样做,因此应该符合“用户激活”的要求。您是在从事件侦听器异步运行的回调函数中执行此操作吗?它与用户交互断开了连接--它必须直接在侦听器函数中。
https://stackoverflow.com/questions/70673137
复制相似问题