Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.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 CrossRider API,打开标签标题_Javascript_Jquery_Crossrider - Fatal编程技术网

Javascript CrossRider API,打开标签标题

Javascript CrossRider API,打开标签标题,javascript,jquery,crossrider,Javascript,Jquery,Crossrider,我使用CrossRider api获取打开的选项卡,使用there api我可以获取书签中链接的标题,但是使用there api我无法使用如何获取打开选项卡中URL的标题,我只能获取URL 是否有人知道这是可以实现的,如果不是,那么是否有其他方法。当前我必须调用一个php脚本来调用URL并提取标题,这太慢了,打开了很多选项卡如果您包含一个代码片段来展示代码的工作方式,那就太好了。但是,在没有代码片段的情况下,我猜您正在后台范围内使用API方法工作,例如。正如您正确猜测的那样,该方法不提供URL的

我使用CrossRider api获取打开的选项卡,使用there api我可以获取书签中链接的标题,但是使用there api我无法使用如何获取打开选项卡中URL的标题,我只能获取URL


是否有人知道这是可以实现的,如果不是,那么是否有其他方法。当前我必须调用一个php脚本来调用URL并提取标题,这太慢了,打开了很多选项卡

如果您包含一个代码片段来展示代码的工作方式,那就太好了。但是,在没有代码片段的情况下,我猜您正在后台范围内使用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'});
});
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
        }
      });
    }
  });
});
extension.js

appAPI.ready(function($) {
  appAPI.message.listener(function(msg) {
    if (msg.action==='tab-info') {
      doSomething(msg.data);
    }
  });
  appAPI.message.toAllTabs({action:'get-tab-info'});
});
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都是!好的,修复了这个错误,但问题是extension.js脚本不适用于使用https的站点,您能建议怎么做吗?extension.js在https站点上运行。是否有您遇到问题的特定站点?有时页面可能需要很长时间才能完成加载,因此延迟就绪事件。我已经在facebook.com、google.com和大约5个其他网站上进行了测试!它适用于非https站点,如果您有任何建议,请您提供建议。我肯定已经用Chrome在这些站点上测试了https,并且它可以工作。如何确定extension.js文件没有运行?您可以通过在after appAPI.ready之前添加console.log消息并检查它们是否出现在控制台中来轻松测试这一点。如果您提供分机id,我也很乐意看一看。