Google chrome extension 点击chrome扩展的弹出图标运行javascript函数

Google chrome extension 点击chrome扩展的弹出图标运行javascript函数,google-chrome-extension,Google Chrome Extension,由于chrome.browserAction.onClicked仅在没有弹出窗口的情况下工作,因此在单击浏览器操作图标时是否有其他方法来触发查询 让我说清楚。。 我有多个视图,即扩展名中的html文件。index.html中的默认弹出窗口 每当我点击图标时,我都想从服务器获取一些数据。如果在index.html或index.js中包含此函数,则每次转到该页面时都会调用此函数。有人能帮我吗 提前谢谢。我也在寻找解决方案,我想知道是否可以在没有弹出窗口的情况下启动浏览器操作,然后将弹出窗口设置为“”

由于chrome.browserAction.onClicked仅在没有弹出窗口的情况下工作,因此在单击浏览器操作图标时是否有其他方法来触发查询

让我说清楚。。 我有多个视图,即扩展名中的html文件。index.html中的默认弹出窗口 每当我点击图标时,我都想从服务器获取一些数据。如果在index.html或index.js中包含此函数,则每次转到该页面时都会调用此函数。有人能帮我吗


提前谢谢。

我也在寻找解决方案,我想知道是否可以在没有弹出窗口的情况下启动浏览器操作,然后将弹出窗口设置为“”。如果可行,这似乎不是最好的方法,我希望有人知道更好的解决方案。

我也在寻找解决方案,我想知道是否可以在没有弹出窗口的情况下启动浏览器操作,然后将弹出窗口设置为“”。如果有效,这似乎不是最好的方法,我希望有人知道更好的解决方案。

我会做的是:

  • 让行为发生在页面的
    onload
    处理程序中。由于它听起来像默认的弹出页面,
    index.html
    ,可以在用户不创建初始弹出时加载,因此我将创建一个专用的初始弹出加载页面,该页面不在其他任何地方使用。此页面可以重定向到
    index.html
    或将其作为iframe包含

  • 另一个选项是让
    index.html
    获取一个查询字符串,指示如何使用它。您的初始弹出窗口可以是
    index.html?init=1
    ,页面的所有其他内容只需使用
    index.html
    。然后使用
    window.location.search.substring(1)
    测试是否存在查询字符串并采取适当的操作

  • 我要做的是:

  • 让行为发生在页面的
    onload
    处理程序中。由于它听起来像默认的弹出页面,
    index.html
    ,可以在用户不创建初始弹出时加载,因此我将创建一个专用的初始弹出加载页面,该页面不在其他任何地方使用。此页面可以重定向到
    index.html
    或将其作为iframe包含

  • 另一个选项是让
    index.html
    获取一个查询字符串,指示如何使用它。您的初始弹出窗口可以是
    index.html?init=1
    ,页面的所有其他内容只需使用
    index.html
    。然后使用
    window.location.search.substring(1)
    测试是否存在查询字符串并采取适当的操作



  • 这需要用户点击按钮两次——一次触发onclick事件,一次显示弹出窗口。它实际上对我有用。关闭弹出窗口后,sessionStorage数据将被清除。这需要用户单击按钮两次——一次触发onclick事件,一次显示弹出窗口。我认为我们可以使用sessionStorage实现此目的。它实际上对我有用。关闭弹出窗口后,会话存储数据将被清除。我不太明白:你说“如果我在index.html或index.js中包含此函数,那么每次我进入该页面时都会调用此函数”,但这不是正确的行为吗?你的意思是用户可以访问
    index.html
    而不是作为弹出窗口?实际上,可以从弹出窗口中的其他查看页面访问index.html。我认为我们可以使用sessionStorage来实现这一目的。它实际上对我有用。关闭弹出窗口后,会话存储数据将被清除。我不太明白:你说“如果我在index.html或index.js中包含此函数,那么每次我进入该页面时都会调用此函数”,但这不是正确的行为吗?你的意思是用户可以访问
    index.html
    而不是作为弹出窗口?实际上,可以从弹出窗口中的其他查看页面访问index.html。我认为我们可以使用sessionStorage来实现这一目的。它实际上对我有用。一旦弹出窗口关闭,会话存储数据将被清除。非常感谢。这种方式听起来不错,但到目前为止,我使用sessionorage实现了它。有人建议吗?我问这个问题是因为我对chrome扩展还不熟悉,所以我只想学习。显然chrome开发者认为对每个新弹出窗口使用一个新的
    sessionStorage
    。我从这个bug报告中得出的结论是,“理想的”行为是在弹出窗口之间保留
    sessionStorage
    。请参见上的MDN页面:“只要浏览器打开,页面会话就会持续,并在页面重新加载和恢复过程中继续存在。”这意味着每次打开弹出窗口时,弹出窗口不应获得新的
    会话存储
    对象。因此,总之,如果您每次打开弹出窗口时都依赖新的
    会话存储
    ,您将依赖一个bug,它可能最终会得到修复。我强烈推荐我的查询字符串解决方案(#2),因为它在逻辑上与您的
    sessionStorage
    解决方案非常相似。与其检查
    会话存储
    中是否尚未设置标志,不如检查
    窗口.location.search
    是否为非空。非常感谢。我将转向你的方法:)非常感谢。这种方式听起来不错,但到目前为止,我使用sessionorage实现了它。有人建议吗?我问这个问题是因为我对chrome扩展还不熟悉,所以我只想学习。显然chrome开发者认为对每个新弹出窗口使用一个新的
    sessionStorage
    。我从这个bug报告中得出的结论是,“理想的”行为是在弹出窗口之间保留
    sessionStorage
    。请参阅上的MDN页面:“只要浏览器打开,页面会话就会持续,并在页面重新加载和恢复过程中幸存下来。”这意味着每次打开弹出窗口时,弹出窗口不应获得新的
    会话存储对象。因此,总之,如果您依赖新的