Chrome内联插件安装在window.confirm上

时间:2016-09-28 10:06:50

标签: javascript google-chrome google-chrome-extension google-chrome-app chrome-web-store

我可以使用window.confirm触发Chrome扩展程序/应用inline installation吗?

  

要实际开始内联安装,   chrome.webstore.install(url,successCallback,failureCallback)   必须调用函数。只能在响应中调用此函数   用户手势,例如在点击事件处理程序内;一个   如果不是,则抛出异常。

来自文档:必须调用chrome.webstore.install以响应用户手势。我可以使用浏览器确认弹出窗口来完成吗?



 if (confirm("Press a button!") == true) {
   var app =
     'https://chrome.google.com/webstore/detail/omcplobmjajgpmpcdnbdiblienjeljan';
   chrome.webstore.install(app, function() {
     console.log('Success');
   }, function(errorMessage) {
     console.log('Error: ' + errorMessage)
   });
 }

<link 
  rel="chrome-webstore-item" 
  href="https://chrome.google.com/webstore/detail/omcplobmjajgpmpcdnbdiblienjeljan"
>
&#13;
&#13;
&#13;

我无法亲自测试,因为我没有经过验证的域名

1 个答案:

答案 0 :(得分:1)

首先触发确认的原因是什么?我猜这是重要的部分。如果您事先没有用户互动弹出确认,我怀疑它是否会起作用。

据我了解用户手势要求,这意味着&#34;在由用户手势触发的事件监听器的上下文中#34;。来自模态的回应不是这样的倾听者。 注意:这是猜测,我还没有测试过。

  

由于必须通过用户手势(例如,鼠标单击)触发内联安装,因此建议您将操作绑定到可点击的用户界面元素,例如按钮。建议您使用与Chrome网上应用店相同的按钮标签(英文,这是&#34;添加到Chrome&#34;)。

这里的文档是指DOM元素,即使它不明确。

事实上,如果在显示对话框之前没有用户手势就可以工作,我会考虑这个错误,因为用户无法避免与confirm交互。