gpt4 book ai didi

javascript - chrome.extension.getViews() 和扩展选项页面

转载 作者:行者123 更新时间:2023-12-02 17:48:03 25 4
gpt4 key购买 nike

如果我打开一个新选项卡并通过直接在地址栏中键入导航到 chrome-extension://{ext_id}/options.html,则页面会显示在列表中

chrome.extension.getViews({'tab'})

这是预期的行为。

如果我[右键单击]我的扩展程序“browser_action”操作并选择“选项”,则会弹出一个新选项卡,其中 chrome-extension://{ext_id}/options.html 作为URL,当我这样做时它会显示在列表中

chrome.extension.getViews({'tab'})

这又是预期的行为。

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

但是,总有一个但是,由于某种原因,此页面显示在

chrome.extension.getViews({'tab'})

尽管它显然在扩展的上下文和协议(protocol)之内。我只是不知道第一个场景和最后一个场景有什么区别。如果有的话,我希望第一个场景会失败,因为用户手动导航到那里,而不是扩展自己的弹出窗口导航到扩展自己的选项页面。

我尝试过同时使用

<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 功能。只是页面没有显示在 getViews 中。我怀疑这是一个沙盒问题,但我无法理解它适用于除一种情况之外的所有其他情况。

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

PS:我不想在弹出窗口中打开选项页面。我已经对此进行了测试,它仍然没有列出 getViews 中的页面,但我认为这是因为它不再是“选项卡”而是“弹出窗口”。但同样,这不是我希望的行为。

最佳答案

如果它看起来像一个错误并且感觉像一个错误,那么它可能是一个错误。将来,如果您认为自己遇到了错误,请立即在 Chromium 的错误跟踪器 http://crbug.com/new 上报告该错误。

我已将您的错误报告为 https://code.google.com/p/chromium/issues/detail?id=341459

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

chrome.tabs.create({
url: 'options.html'
});

关于javascript - chrome.extension.getViews() 和扩展选项页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21603627/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com