javascript 不允许启动“< URL>”,因为需要用户手势

rfbsl7qr  于 2023-05-27  发布在  Java
关注(0)|答案(1)|浏览(1293)

我的零件代码有问题。我正在开发一个扩展。我正在尝试使用我的应用程序打开链接。

var tab;
const context = chrome || browser;

if (tab.url.includes("youtube.com/watch?")) {
      context.tabs.update(tab.id, { url: "nameOfMyProgram:" + tab.url }); // Not allowed to launch 
      //'<URL>' because a user gesture is required. 
}

问题发生在opera浏览器第一次点击网页时,它工作正常。在随后的点击中,出现错误“不允许启动'',因为需要用户手势。”这在chrome浏览器中正常工作。我该如何解决这个问题?
我的清单中有“选项卡”权限

oxf4rvwz

oxf4rvwz1#

我在Chrome的外部处理程序上遇到了这个问题。由于Opera也是基于 chrome 的,这个解决方案可以为您工作,但是,看起来Opera没有提供启用我在gpedit中使用的选项所需的策略文件。使用这些步骤,您可能能够弄清楚如何下载Opera的策略文件,但我自己在网上找不到它。
这是我在Chrome上解决这个问题的方法。
您需要在本地组策略编辑器中启用Allow access to list of URLs选项。从此处下载Chrome ADM/ADMX模板zip:https://chromeenterprise.google/browser/download/?sjid=5017331163642805921-NA#manage-policies-tab并解压缩。
然后打开本地组策略编辑器。浏览到Local Computer Policy -> Computer Configuration -> Administrative Templates。右键单击“管理模板”,然后单击“添加/删除模板”。
从解压缩的zip文件浏览到GoogleChromeEnterpriseBundle64\Configuration\adm\en-US并选择chrome.adm
现在,您应该在gpedit的Administrative Templates文件夹中拥有Classic Administrative Templates选项。
从此处浏览到Classic Administrative Templates -> Google -> Google Chrome,然后双击Allow access to a list of URLs
启用该策略,然后您可以在其中键入您希望能够在没有用户手势的情况下启动外部处理程序的程序名称。下面是我的一个示例截图:

您需要从控制台日志中的错误中复制程序名并将其输入。
我的答案是特定于Chrome的,但我相信如果你能找到适用于Opera的ADM策略文件,它将为你工作。

相关问题