我开始使用滑稽猴子脚本。您可以使用命令GM_xmlhttprequest并能够获取跨域数据。我原来的代码在Greasemonkey下面工作,现在我已经超越了通用的信誉,我需要把它移到插件SDK。FireFox扩展SDK将GM_xmlhttprequest转换为与插件sdk兼容的东西
GM_xmlhttpRequest({
method: 'POST',
url: "http://10.1.1.1/app/site_search_info.php",
headers: {
"Content-Type": "application/x-www-form-urlencoded"
},
data: encodeURI("link=" + itemDir[2]),
onload:function(r)
{
................ original html formating code here...
}
});
我能够拉取有关每个行项目的日期信息,然后让它在每行当前文本后面附加该信息。我在main.js中使用了一个pagemod调用来加载我的search.js,该代码包含这个代码。当我得到一个应该执行xmlhttprequest的页面时,它不会在浏览器错误控制台中显示错误,并且不会运行。在XHR出现之前发出警报。由于它是一个跨站点XHR,我只能假设我在尝试替换GM_xmlhttprequest时语法错误,或者它被安全设置阻止。
所以对于跨站点的请求,我应该使用
var Request = require("request").Request;
Request({
url: "http://10.1.1.1/app/site_search_info.php",
headers: {
"Content-Type": "application/x-www-form-urlencoded"
},
content: encodeURI("link=" + itemDir[2]),
onload:function(r)
{
................ original html formating code here...
};
}).post();
或者我应该使用的财产以后像
var req = Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"]
.createInstance(Components.interfaces.nsIXMLHttpRequest);
req.open('PUT',"http://10.1.1.1/app/site_search_info.php", false); /* synchronous! */
req.onload = function (r)
{
................ original html formating code here...
};
req.setRequestHeader('Content-Type', application/x-www-form-urlencoded);
req.send(encodeURI("link=" + itemDir[2]))
我需要发布一个项目命名它结束了编码“链接=钳”并获取php页面生成的时间日期结果,并通过格式化代码运行它,然后在原始网页中添加该数据。
由于这是我在sdk中的第一个XHR,我需要弄清楚它是否是XHR上的语法错误,或者它是否使用错误类型的XHR,因为安全性会阻止它。
如果两者都可以工作,那么他们必须放在一个特定的.js文件或以特定的方式调用?
所以在内容脚本末尾我有'var cells = document.getElementsByTagName('td'); (i = 0; i
Kendrick
2012-03-22 01:12:46
// Main'var Request = require(“request”)。Request; var pageMod = require(“page-mod”); var data = require(“self”)。data; pageMod.PageMod({ 包括: “http://site.com/*”, contentScriptFile:data.url( “item.js”) onAttach:功能(工人) \t \t \t { \t \t \t worker.port。上( '细胞',getItemPage(小区) \t \t \t \t { \t \t \t \t变种链路= cell.getElementsByTagName( 'A')[0] .href; //获取从细胞 变种itemDir链接=链接的ToString()分割( “/”);。 \t \t \t \t请求({'中所见inital交 – Kendrick 2012-03-22 01:15:49
// item.js在端 '// \t getItemPage(细胞[I]); \t self.port.emit('cells',true); \t self.port.on('itemDir',?); \t self.port.on('cellInfo',? ); \t a = document.createElement('a'); \t a.href =“http://10.1.1.1/items/"+ itemDir [4]; \t a.innerHTML = cellInfo; \t cell.appendChild(a); \t \t \t} \t \t} \t}' 不完全知道如何返回itemDir和cellInfo或者如果我可以将它们合并一些如何。 – Kendrick 2012-03-22 01:25:47