1

我可以使用window.confirm来触发Chrome扩展程序/ app inline installationChrome内嵌插件安装在window.confirm上

要真正开始在线安装, 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" 
 
>

我无法测试它自己,因为我没有验证域

+0

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

+0

你是说,我应该打电话确认按钮点击(例如)? –

+0

你为什么使用confirm()? –

回答

1

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

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

由于内嵌安装有经由用户手势来触发(例如,鼠标点击)这是因此建议你配合作用以可点击的用户接口元件,如按钮。建议您使用与Chrome网上应用店本身相同的按钮标签(英文,这是“添加到Chrome”)。

这里的文档指的是DOM元素,即使它不是显式的。实际上,如果它在显示对话框之前没有用户手势工作,我会考虑这个bug,因为用户无法避免与confirm进行交互。

+1

是的,它只在*用户手势*调用的函数中确认*时才有效。 –