我想使用Firefox扩展访问youtube上的评论部分。由于评论部分在iframe中,并且位于其他网站(加上.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());
只是为了测试跨域脚本是否工作,但当加载注释时,脚本显示空消息,但当装载注释时,该脚本显示[未定义],而不是注释部分的内容。为什么?如何获取iframe内容?
youtube.js
代码出现问题。我不知道为什么,但我无法访问#comments测试框架元素,所以我尝试了另一个div,它在iframe中,它成功了。