【问题标题】:Chrome Extension, trigger click on the iconChrome扩展,触发点击图标
【发布时间】:2016-02-24 14:45:51
【问题描述】:

我在 Google 和 StackOverflow 上进行了搜索,但我找不到解决问题的方法(令我大吃一惊)。

我希望显示弹出窗口,就像用户单击我的扩展程序图标时一样,但通过 javascript。

其背后的想法很简单:在特定页面上,我注入一个按钮并在其上添加一个事件侦听器(“单击”)。当用户单击该按钮时,我想显示工具提示,就这么简单:)

...但我找不到任何相关的东西。有什么想法吗?

提前谢谢你。

【问题讨论】:

    标签: google-chrome-extension


    【解决方案1】:

    没有用户交互是不可能打开弹出窗口的。也有充分的理由,请记住,没有人喜欢打开自己的弹出窗口。您可以做的是通过内容脚本将弹出窗口注入用户所在的站点。 https://developer.chrome.com/extensions/content_scripts

    【讨论】:

    • 此外,Chromium 团队正在开发用于扩展和应用程序的侧边栏。不幸的是,这项工作最近停止了。
    • 我所说的“弹出窗口”是我的扩展程序的弹出窗口,即单击任何图标时出现的 html。当用户单击我在当前页面中注入的按钮时,将显示此内容。
    • 是的,恐怕我的回答仍然成立。过去我自己尝试过这样做,但没有注意到 Chrome 浏览器操作 API 有任何变化。 developer.chrome.com/extensions/browserAction
    • 谢谢您的回答 :) 与此同时,我找到了一个替代方法:我没有显示工具提示,而是将其删除并添加了一个事件 (chrome.browserAction.onClicked),该事件在 @987654324 中添加了 html @ (允许)。所以也很好:)
    • @HibaraAi 答案被接受,因为它回答了问题:) 问题是如何显示工具提示,答案说这是不可能的,因此这是一个答案。不是我期待的,但很好..
    【解决方案2】:

    根据你的描述,

    特定页面上,我注入一个按钮并在其上添加一个事件监听器(“点击”)。当用户单击该按钮时,我想显示工具提示,就这么简单:)

    我认为你需要的只是chrome.pageAction,它类似于browserAction,同时表示可以在当前页面上执行的操作,但并不适用于所有页面。

    【讨论】:

    • 他还指定了I'm looking to display the popup, exactly like when the user click on the icon of my extension, but via javascript. 并且他想inject a button 以执行此操作, - 这仍然无法通过页面操作API 完成。但是我同意在这种情况下页面操作可能更合适。
    • 感谢您的回复!但是哪一部分不能通过页面操作来完成?用户可以点击页面动作的图标,页面动作可以显示弹窗,有什么我错过的吗?
    • 据我了解,他想显示弹出窗口**exactly** like when the user click on the icon of my extension,并使用 injected 按钮来实现。我假设注入的按钮也无法打开页面操作多功能栏图标的弹出窗口?因此,在这种情况下,页面操作将解决有关在特定页面上可见的部分,但不能解决有关按钮注入的部分(可能是通过内容脚本注入到活动站点)。如果他同意按钮图标位于多功能栏中,那么页面操作很好。
    • 我明白了...所以你假设他想在地址栏外显示按钮(浏览器操作)而不是地址栏内(页面操作)。
    • 是的,我假设他想注入用户正在查看的当前页面上的按钮。一旦解除了这种限制,页面操作就会很有趣。鉴于目前的问题,我认为正确的答案仍然是 Chromium 团队故意要求用户交互基于扩展的弹出窗口。不允许 JS 点击触发器。不过,我很高兴你为他提供了一个不错的选择。 :)
    猜你喜欢
    • 2018-04-13
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 2016-11-05
    • 2021-07-09
    • 2015-04-08
    • 2014-09-10
    • 1970-01-01
    相关资源
    最近更新 更多