我有我的greasemonkey脚本扫描我访问的每个页面的特定字符串。我想在sqlite db中记录字符串的变化。我会在一段时间内有另一个应用程序处理这个db everyonce。我不知道的是如何将数据存储到sqlite数据库中?我想我可以自动启动一个可执行文件,如果找到该字符串,但我不知道如何通过javascript做到这一点。我认为另一个替代方案是有一个套接字监听某个端口并且有一些js魔法,但我想不出一种静默的方式来发送这样的数据。
答案 0 :(得分:3)
我建议使用网络服务器来收集数据。您可以设置域或IP以将数据发送到。只是为了开始,如果需要,你甚至可以在localhost上运行。
优势在于,一旦创建,可以在不同的PC上使用相同的架构,因此运行该脚本的任何计算机都可以共享结果。
<强>更新强> 要与您的服务器通信,您需要使用GM_xmlhttpRequest。我知道有一个库添加了一个抽象层,可以更容易地使用GM_xmlhttpRequest:Speakeasy.js。它是一个相对未知的轻量级ActiveResource类接口,用于从RESTful Web服务器发送和检索数据。 Greasemonkey脚本的Here's an example,在每个页面加载时与Web服务器通信。它会加载注释并在页面上显示它们。
这是一个符合您需求的改编版本:
// ==UserScript==
// @name Demo Script
// @namespace http://example.com
// @description Sample
// @include *
//
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js
// @require http://strd6.googlecode.com/svn/trunk/gm_util/d_money.js
// @require http://strd6.googlecode.com/svn/trunk/gm_util/speakeasy.js
//
// ==/UserScript==
error = D$.error;
log = D$.log;
D$.debug(false);
Speakeasy
.generateResource('result')
.configure({
baseUrl: 'http://localhost:3000/'
})
;
// Attach all annotations for this page from remote server
var href = window.location.href;
currentUrl = href.substring(href.indexOf('://') + 3);
log(currentUrl);
var result1 = 'something'; // Insert your function to get your result data
var result2 = 'something else'; // Insert your function to get your result data
Speakeasy.result.create({
data: {
url: currentUrl,
result1: result1,
result2: result2
}
});
您可以快速创建Rails站点或使用您熟悉的任何后端。
答案 1 :(得分:2)
您可能还想考虑使用Google Gears扩展程序,该扩展程序使用了SQLite数据库。
答案 2 :(得分:1)
我不确定如何将它与Greasemonkey一起使用,但Firefox有一个名为Storage的API用于使用sqlite数据库。请在此处查看:https://developer.mozilla.org/en/Storage
答案 3 :(得分:1)
或者您只是使用LubeMonkey, 它是一个改进的Greasemonkey fork,支持sqlite。 每个安装的脚本都会创建自己的sqlite数据库,并且您可以在该数据库中执行查询更新等,甚至可以在数据库或任何数据上缓存图像。 在此处http://www.gamecore.org
答案 4 :(得分:0)
你可以让greasemonkey脚本调用带有一些变量的url(比如你想要存储的数据)。使用ajax请求。您可以在本地设置Web服务器来处理它们。
如果您在Windows上,可以使用WAMP快速启动Web服务器。只需确保启用php_sqlite扩展名。
这可能会帮助您了解一些实施细节: http://www.pathf.com/blogs/2006/07/bjax_with_greas/