Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript chrome.extension.getViews()和扩展选项页_Javascript_Google Chrome_Google Chrome Extension - Fatal编程技术网

Javascript chrome.extension.getViews()和扩展选项页

Javascript chrome.extension.getViews()和扩展选项页,javascript,google-chrome,google-chrome-extension,Javascript,Google Chrome,Google Chrome Extension,如果我打开一个新的标签,通过直接在地址栏中键入来导航到chrome扩展名://{ext_id}/options.html,当我这样做时,页面会显示在列表中 chrome.extension.getViews({'tab'}) chrome.extension.getViews({'tab'}) 这是预期的行为 如果我[右键单击]我的扩展浏览器(u action action)并选择“选项”,则会出现一个新的选项卡,其中chrome扩展名为://{ext_id}/Options.html作为U

如果我打开一个新的标签,通过直接在地址栏中键入来导航到chrome扩展名://{ext_id}/options.html,当我这样做时,页面会显示在列表中

chrome.extension.getViews({'tab'})
chrome.extension.getViews({'tab'})
这是预期的行为

如果我[右键单击]我的扩展浏览器(u action action)并选择“选项”,则会出现一个新的选项卡,其中chrome扩展名为://{ext_id}/Options.html作为URL,当我这样做时,它会显示在列表中

chrome.extension.getViews({'tab'})
chrome.extension.getViews({'tab'})
同样,这是预期的行为

如果我单击我的扩展弹出窗口上的链接,该链接将导航到选项页面,这将打开一个新选项卡并将我导航到chrome扩展://{ext_id}/options.html。这是预期的行为

但是,总有一个但是,由于某些原因,此页面不会显示在中

chrome.extension.getViews({'tab'})
尽管它显然在扩展的上下文和协议中。我只是不知道第一个场景和最后一个场景有什么区别。如果有任何问题,我预计第一个场景会失败,因为用户正在手动导航到那里,而不是导航到extensions own options页面的extensions own弹出窗口

我试过两者都用

<a href="options.html" target="_blank"> 
/* and */
<a id="options" target="_blank">
<script>
    document.getElementById('options').href = chrome.extension.getURL('options.html');
</script>
/* This correctly sets the href as chrome-extension://{ext_id}/options.html */
但同样的问题。扩展仍然正确运行其所有Javascript。我仍然能够正确使用chrome.extension功能。只是页面没有显示在GetView中。我怀疑这是一个沙箱问题,但我不能理解它适用于除沙箱之外的所有其他情况

有人知道如何让它正常工作吗?或者以不同的方式打开页面,使其正常工作


PS:我不想在弹出窗口中打开选项页面。我已经测试过了,它仍然没有列出GetView中的页面,但我认为这是因为它不再是一个“选项卡”,而是一个“弹出窗口”。。但是,这不是我想要的行为。

如果它看起来像一个bug,感觉像一个bug,那么它可能是一个bug。将来,如果你认为自己遇到了一个bug,请毫不犹豫地在Chromium的bug追踪器上报告

我已将您的错误报告为

从弹出窗口打开扩展页以显示在chrome.extensions.getView{type:'tab'}中的解决方法是使用以下方法打开选项卡:


当我在文档中看到您不需要tabs权限就可以使用大部分功能时,我正在尝试这项技术。这很有效。没有使用href那么优雅,但我可以接受它。另外,感谢您提出有关铬的问题。