omnibox.OnInputEnteredDisposition参数的设置位置咨询
关于omnibox.onInputEntered中OnInputEnteredDisposition参数的设置逻辑
这个参数不是由开发者手动设置的,而是浏览器根据用户在地址栏的操作行为自动传入的,你之前测试一直得到currentTab是因为没尝试触发其他行为的快捷键组合。
用户的不同操作对应不同的参数值:
- 直接按下回车键:参数为
currentTab(在当前标签页打开) - 按住Ctrl(Windows/Linux)或Cmd(Mac)再按回车键:参数为
newForegroundTab(在新的前台标签页打开) - 按住Shift+Ctrl(Windows/Linux)或Shift+Cmd(Mac)再按回车键:参数为
newBackgroundTab(在新的后台标签页打开)
开发者的核心工作是根据传入的这个参数值,决定如何处理页面打开逻辑,比如配合chrome.tabs.create API实现对应行为:
chrome.omnibox.onInputEntered.addListener((text, disposition) => { const url = `https://example.com/search?q=${text}`; switch(disposition) { case 'currentTab': chrome.tabs.update({ url }); break; case 'newForegroundTab': chrome.tabs.create({ url, active: true }); break; case 'newBackgroundTab': chrome.tabs.create({ url, active: false }); break; } });
你提到的windowOpenDisposition是已废弃的旧API,和当前omnibox的参数机制无关,无需关注。
内容的提问来源于stack exchange,提问作者toraritte
相关产品推荐
相关产品推荐

