【问题标题】:CrossRider API, get opened tabs titleCrossRider API,获取打开的标签标题
【发布时间】:2014-11-19 18:28:33
【问题描述】:

我正在使用 CrossRider api 来获取打开的选项卡,使用那里的 API 我可以获取书签中链接的标题,但是使用那里的 api 我无法使用如何在打开的选项卡中获取 url 的标题,我可以得到网址。

有没有人知道这是否可以实现,如果不能,那么是否有其他方法。目前我必须调用一个 php 脚本来调用 URL 并提取标题,这在打开很多标签时变得太慢了

【问题讨论】:

    标签: javascript jquery crossrider


    【解决方案1】:

    如果您包含一个代码 sn-p 来显示您的代码是如何工作的,那就太好了。但是,在没有 sn-p 的情况下,我猜您正在使用诸如 appAPI.tabs.getAllTabs 之类的 API 方法在后台范围内工作。正如您所猜测的那样,该方法没有提供 URL 的标题。

    有几种方法可以解决这个问题,您提到了其中的一种,但是,我更喜欢通过消息传递从选项卡本身获取信息。例如,假设您仍然需要后台范围内的信息:

    background.js

    appAPI.ready(function($) {
      appAPI.message.listener(function(msg) {
        if (msg.action==='tab-info') {
          doSomething(msg.data);
        }
      });
      appAPI.message.toAllTabs({action:'get-tab-info'});
    });
    

    extension.js

    appAPI.ready(function($) {
      appAPI.message.listener(function(msg) {
        if (msg.action==='get-tab-info') {
          appAPI.message.toBackground({
            action:'tab-info',
            data: {
              tabId: appAPI.getTabId(),
              url: appAPI.dom.location.href,
              title: document.title
            }
          });
        }
      });
    });
    

    [披露:我是 Crossrider 的员工]

    【讨论】:

    • 尝试这样做并且还返回了第一个标签,而且标题还没有,url和标签ID是!
    • ok 修复了这个错误,但问题是 extension.js 脚本不适用于 https 的网站,你能建议怎么做吗?
    • extension.js 确实在 https 站点上运行。是否存在您遇到问题的特定网站?有时页面可能需要很长时间才能完成加载,因此会延迟 ready 事件。
    • 我已经在 facebook.com、google.com 和大约 5 个其他网站上进行了测试!它适用于非https网站,如果您有任何建议,请您提出建议
    • 我确实在那些网站上用 Chrome 测试过 HTTPS 并且它可以工作。您如何确定 extension.js 文件未运行?您可以通过在 appAPI.ready 之后添加 console.log 消息来轻松测试这一点,并检查它们是否出现在控制台中。如果您提供扩展程序 ID,我也很乐意查看。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-18
    • 2019-10-10
    • 2022-11-18
    • 1970-01-01
    • 2011-11-08
    • 1970-01-01
    相关资源
    最近更新 更多