【问题标题】:Chrome inline plugin install on window.confirm在 window.confirm 上安装 Chrome 内联插件
【发布时间】:2017-02-06 05:56:07
【问题描述】:

我可以使用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"
>

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

【问题讨论】:

  • 首先是什么触发了confirm?我猜这是重要的部分。如果您事先在没有用户交互的情况下弹出确认,我怀疑它会起作用。
  • 你的意思是,我应该在按钮点击时调用确认(例如)?
  • 你为什么使用confirm()?
  • 客户的技术任务

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


【解决方案1】:

首先是什么触发了确认?我猜这是重要的部分。如果您事先在没有用户交互的情况下弹出确认,我怀疑它会起作用。

据我了解用户手势要求,这意味着“在由用户手势触发的事件侦听器的上下文中”。来自模态的响应不是这样的听众。 注意:这是一个猜测,我没有测试过。

由于必须通过用户手势(例如,鼠标点击)触发内联安装,因此建议您将操作绑定到可点击的用户界面元素,例如按钮。建议您使用与 Chrome Web Store 本身相同的按钮标签(英文为“Add to Chrome”)。

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

事实上,如果它确实在显示对话框之前没有用户手势的情况下工作,我会认为这是一个错误,因为用户无法避免与confirm 交互。

【讨论】:

  • 是的,只有在用户手势调用的函数中确认才有效。
猜你喜欢
  • 1970-01-01
  • 2015-04-02
  • 1970-01-01
  • 2015-07-02
  • 2014-09-30
  • 2017-10-28
  • 2012-07-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多