谷歌插件与桌面通讯
谷歌插件的运行是在一个封闭的沙盒中的,所以要想从本地读出相应的数据无法达到。这时,我们可以考虑SOCKET通信。
原理:本地运行一个SOCKET监听某个端口,插件向该服务端口发送信息,服务处理后,再返回相应的数据。
服务中使用的是SOCKET,实现代码如下
/// <reference path="../libs/jquery-1.7.2.min.js"/>var Communicate = {};Communicate.send = function (cmd, data, callback) {//jquery的ajax实现 var sendCmdData = ""; if (cmd === undefined || cmd === null) { return; } sendCmdData += cmd; if (data !== undefined || data !== null) { sendCmdData += data; } var url = 'http://localhost:20000/' + sendCmdData $.ajax({ url: url, async: false, success: callback });}Communicate.send = function (cmd, data, callback) {//xhr实现 var xhr = new XMLHttpRequest(); var sendCmdData = ""; if (cmd === undefined || cmd === null) { return; } sendCmdData += cmd; if (data !== undefined || data !== null) { sendCmdData += data; } xhr.onreadystatechange = function () { if (xhr.readyState == 4) { if ((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304) //200:Success.304:Tell browser to read cache. { //alert(xhr.responseText); if (callback === undefined || callback === null) { return; } callback(xhr.responseText); } } } xhr.open("GET", 'http://localhost:20000/' + sendCmdData, true); xhr.send(null);}