【发布时间】:2012-02-29 13:09:13
【问题描述】:
我正忙于开发一个 Firefox 扩展程序。我正在使用插件生成器
它将做什么:
从 PHP 页面获取 ID (XMLHttpRequest)
调用另一个函数并发送该 ID
该函数插入带有由 javascript 创建的链接标签的 CSS
我的问题:
这行不通。如果我提醒 currenttheme 变量,什么也不会发生。所以 XMLHttpRequest 似乎不起作用。
我的代码:
main.js:
var Widget = require("widget").Widget;
var tabs = require('tabs');
exports.main = function() {
var pageMod = require("page-mod");
var data = require("self").data;
scriptFiles = data.url("s.js");
pageMod.PageMod({
include: "*.facebook.com",
contentScriptWhen: 'ready',
contentScriptFile: scriptFiles
});
s.js
function addCSS(theTheme) {
var s = document.createElement('link');
s.type = 'text/css';
s.rel = 'stylesheet';
s.href = theTheme+'.css';
(document.head||document.documentElement).appendChild(s);
}
function getData() {
client = new XMLHttpRequest();
try{
client.open('GET','http://localhost:8888/istyla/login/popuplogin/myaccount.php');
} catch (e){
alert( "error while opening " + e.message );
}
client.onreadystatechange = function(){
if (client.readyState ==4){
user_data = client.responseText;
window.user_data = user_data;
var currenttheme = user_data;
window.currenttheme = currenttheme;
addCSS(currenttheme);
}
}
client.send(null);
}
getData();
附: CSS 文件位于数据文件夹中。
【问题讨论】:
-
您请求的路径不存在(也许对您有用,但不是对每个用户)。
-
在我完成测试后,它将被放在任何人都可以使用的服务器上。
-
由于某种原因,似乎 XMLHttpRequest 根本没有在 PageMod 脚本的上下文中定义。 jQuery 也是如此。
标签: javascript firefox firefox-addon firefox-addon-sdk