📄 gsearch.js
字号:
var gWebSearchControl=Class.create();
gWebSearchControl.prototype={
//对页面中searchControl的引用
searchControl_Ref:null,
//gWebSearchControl对象的自我引用
gWSC_Self:null,
/**
* 初始化搜索控制
* @param searchControl 页面中的searchControl
* @param restrictedSite 搜索限制站点
* @param attachedDOM 搜索控制所附着的DOM
*/
initialize:function (searchControl,restrictedSite,attachedDOM){
gWSC_Self=this;
gWSC_Self.searchControl_Ref=searchControl;
var siteSearcher=new GwebSearch();
siteSearcher.setSiteRestriction(restrictedSite);
siteSearcher.setResultSetSize(GSearch.SMALL_RESULTSET);
var siteSearcherOptions = new GsearcherOptions();
siteSearcherOptions.setExpandMode(GSearchControl.EXPAND_MODE_PARTIAL);
searchControl.addSearcher(siteSearcher, siteSearcherOptions);
var drawOptions = new GdrawOptions();
drawOptions.setDrawMode(GSearchControl.DRAW_MODE_LINEAR);
searchControl.draw(attachedDOM,drawOptions);
},
/**
* 执行搜索
* @param searchTags dishy提供的tags数组
*/
executeSearch:function(searchTags) {
var searchKeys=gWSC_Self.getRandomSearchKeys(searchTags);
gWSC_Self.searchControl_Ref.execute(searchKeys);
},
/**
* 随即组合tag,生成search关键字串
* @param searchTags dishy提供的tags数组
* @return 生成search关键字串
*/
getRandomSearchKeys:function(searchTags){
var searchKeys='';
if (searchTags!=null){
var randomNum=Math.floor(Math.random()*searchTags.length);
if (randomNum==0){
randomNum++;
}
for(var i=0;i<randomNum;i++){
if (i==0){
searchKeys+=searchTags[i];
}
else{
searchKeys+=' '+ searchTags[i];
}
}
}
return searchKeys;
}
}
var gCustomizeWebSearchControl=Class.create();
gCustomizeWebSearchControl.prototype={
//对页面中searcher_Ref的引用
searcher_Ref:null,
searchForm_Ref:null,
//gWebSearchControl对象的自我引用
gCustomizeWSC_Self:null,
/**
* 初始化搜索控制
* @param searchControl 页面中的searchControl
* @param restrictedSite 搜索限制站点
* @param attachedDOM 搜索控制所附着的DOM
*/
initialize:function(customSiteSearcher,searchForm,restrictedSite) {
gCustomizeWSC_Self=this;
gCustomizeWSC_Self.searcher_Ref=customSiteSearcher;
gCustomizeWSC_Self.searchForm_Ref=searchForm;
customSiteSearcher.setSiteRestriction(restrictedSite);
customSiteSearcher.setResultSetSize(GSearch.SMALL_RESULTSET);
customSiteSearcher.setSearchCompleteCallback(null, gCustomizeWSC_Self.searcherCompleteCallback);
searchForm.setOnSubmitCallback(null, gCustomizeWSC_Self.searchFormCallback);
},
/**
* searchForm提交时的callback
* @param form对象
*/
searchFormCallback:function(form){
//alert('search for:'+form.input.value);
gCustomizeWSC_Self.searcher_Ref.execute(form.input.value);
return false;
},
/**
* 搜索者完成搜索时的callback:显示搜索结果
*/
searcherCompleteCallback:function () {
//alert('customSiteSearcher.results:'+gCustomizeWSC_Self.searcher_Ref.results);
if (!gCustomizeWSC_Self.searcher_Ref.results){
return;
}
gCustomizeWSC_Self.constructedDisplaySearchResult(gCustomizeWSC_Self.searcher_Ref.results,$('searchwell'));
},
/**
* 显示搜索结果:
* 结构为:
* <div><a href="xxx">result.title</a></div>
* <div>result.content</div>
* @param results 搜索结果数组
*/
constructedDisplaySearchResult:function(results,attachDOM){
var searchWell = attachDOM;
searchWell.innerHTML = "";
for (var i =0; i<results.length; i++) {
//新建层
var divNode=document.createElement("div");
//新建连接
var hrefNode=document.createElement("a");
var hrefAttr=document.createAttribute("href");
hrefAttr.value=results[i].url;
hrefNode.setAttributeNode(hrefAttr);
//新建连接文字
var textNode=document.createTextNode(results[i].title.unescapeHTML());
hrefNode.appendChild(textNode);
divNode.appendChild(hrefNode);
searchWell.appendChild(divNode);
var contentNode=document.createElement("div");
var contentTextNode=document.createTextNode(results[i].content.unescapeHTML());
contentNode.appendChild(contentTextNode);
searchWell.appendChild(contentNode);
}
},
/**
* 执行搜索
* @param searchTags dishy提供的tags数组
*/
executeSearch:function(searchTags) {
var searchKeys=gCustomizeWSC_Self.getRandomSearchKeys(searchTags);
gCustomizeWSC_Self.searchForm_Ref.execute(searchKeys);
},
/**
* 随即组合tag,生成search关键字串
* @param searchTags dishy提供的tags数组
* @return 生成search关键字串
*/
getRandomSearchKeys:function(searchTags){
var searchKeys='';
if (searchTags!=null){
var randomNum=Math.floor(Math.random()*searchTags.length);
if (randomNum==0){
randomNum++;
}
for(var i=0;i<randomNum;i++){
if (i==0){
searchKeys+=searchTags[i];
}
else{
searchKeys+=' '+ searchTags[i];
}
}
}
return searchKeys;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -