Firefox附加SDK和跨域

时间:2014-09-25 14:48:02

标签: jquery cross-domain firefox-addon-sdk

我想通过Firefox扩展程序访问youtube上的评论部分。由于评论部分位于iframe中,并且位于其他网站(plus.googleapis.com),因此我需要启用跨域功能。

我通过在package.json中包含跨域内容来实现这一点:

{
  "name": "testfirefoxextension",
  "title": "testFirefoxExtension",
  "id": "id removed",
  "description": "nike z youtubu v zvezi",
  "author": "kv1dr",
  "license": "MPL 2.0",
  "version": "0.1",
  "permissions": {
    "cross-domain-content": ["http://www.youtube.com", "https://plus.googleapis.com/"]
  }
}

以防万一,在lib/main.js我添加了youtube.com和googleapis.com以包含部分。这是lib/main.js

的完整内容
// Import the page-mod API
var pageMod = require("sdk/page-mod");
// Import the self API
var self = require("sdk/self");

// Create a page mod
// It will run a script whenever a "youtube.com" URL is loaded
// The script replaces the page contents with a message
pageMod.PageMod({
  include: ["*.youtube.com","*.googleapis.com"],
  contentScriptFile: [self.data.url("jquery-2.1.1.min.js"), self.data.url("youtube.js")]
});
youtube.js中的

我只有alert($("#comments-test-iframe").html());来测试,如果跨域脚本正在运行,但是当加载注释时,脚本显示空消息,但是当加载注释时,脚本显示[undefined],而不是评论部分的内容。为什么?以及如何获取iframe内容?

1 个答案:

答案 0 :(得分:1)

youtube.js代码存在问题。我不知道为什么,但是我无法访问#views-test-frame元素,所以我尝试了另一个div,它在iframe中,并且它有效。