/** * 注册命名空间:baidu.fdp */ baidu.namespace.register("baidu.fdphelper"); /** * 栅格相关处理 * @author zhaoxianlie */ baidu.fdphelper = (function(){ /** * 当前的搜索范围,默认为FDP搜索 */ var _G_CUR_DOC_ = 'fdp'; /** * 文档路径 */ var _DOC_PATH = { fdp : "http://fe.baidu.com/space/doc/", fe : "http://fe.baidu.com/doc/" }; /** * 数据缓存 */ var _dataCache = { fdp : [], fe : [] }; /** * 获取FDP文档数据 */ var _getFdpDocData = function(){ if(!_dataCache.fdp.length) { var url = 'http://fe.baidu.com/space/static/js/doc_data.js?v=' + (new Date() - 1); //向background发送一个消息,要求其加载并处理js文件内容 chrome.extension.sendMessage({ type : MSG_TYPE.GET_JS, link : url },function(respData){ eval(respData.content); _parseFdpDocData(g_docData); jQuery('#num-fdp-doc').html(_dataCache.fdp.length); }); } }; /** * 获取FE文档数据 */ var _getFeDocData = function(){ if(!_dataCache.fe.length) { var url = 'http://fe.baidu.com/doc/_ADoc/search/Data/docData.js?v=' + (new Date() - 1); //向background发送一个消息,要求其加载并处理js文件内容 chrome.extension.sendMessage({ type : MSG_TYPE.GET_JS, link : url },function(respData){ eval(respData.content); _dataCache.fe = docData; jQuery('#num-fe-doc').html(docData.length); }); } }; /** * 解析Fdp平台文档数据 * @param {Object} fdpData */ var _parseFdpDocData = function(fdpData){ _dataCache.fdp = []; var t; for(var url in fdpData) { t = fdpData[url]; _dataCache.fdp.push({ url : url, title : t[0], author : t[1], mtime : t[2] }); } }; /** * 在data数据中搜索key,分别在title和author中进行模糊匹配 * @param {Object} data * @param {Object} key */ var _searchAdoc = function(data,key) { var titleResult = []; var authorResult = []; var urlResult = []; try { var reg = new RegExp(key, 'i'); for (var i = 0, l = data.length; i < l; i++) { var item = data[i]; if (reg.test(item['title'])) { titleResult.push(item); } else if (reg.test(item['author'])) { authorResult.push(item); } else if (reg.test(item['url'])) { urlResult.push(item); } } return titleResult.concat(authorResult.concat(urlResult)); } catch (e) { return []; } }; /** * 将关键字进行加粗高亮显示 * @param {Object} word * @param {Object} key */ var _searchLighter = function(word, key) { var reg = new RegExp(key, 'ig'); return word.replace(reg, function ($0) { return '' + $0 + ''; } ); }; /** * 执行文档检索 */ var _doDocSearch = function() { //获取关键字 var key = jQuery('#fdp-search-input').val().trim(); //结果显示 var $resultEl = jQuery('#fdp-doc-rst-list'); //关键字为空 if (key.length === 0) { $resultEl.html('