javascript搜索,js 查找

js怎样获取搜索引擎搜索关键词?

js获取搜索引擎搜索关键词有两种方法可以实现:

成都创新互联公司-成都网站建设公司,专注网站设计制作、网站设计、网站营销推广,国际域名空间,雅安服务器托管网站托管有关企业网站制作方案、改版、费用等问题,请联系成都创新互联公司

第一种方法:

var str1=""; 

var str2= ""; 

var refer=document.referrer; 

var sosuo=refer.split(".")[1]; 

var grep=null; 

var str=null; 

var keyword=null; 

var skey="xx"; 

var ykey=""; 

switch(sosuo){ 

case "baidu": 

grep=/wd\=.*\/i; 

str=refer.match(grep) 

keyword=str.toString().split("=")[1].split("")[0]; 

//console.log(decodeURIComponent(keyword)); 

ykey=decodeURIComponent(keyword); 

addCookie('key',decodeURIComponent(keyword),1); 

//alert(decodeURIComponent(keyword)); 

break; 

case "google": 

grep=/q\=.*\/i; 

str=refer.match(grep) 

keyword=str.toString().split("")[1].split("=")[1]; 

//console.log(decodeURIComponent(keyword)); 

ykey=decodeURIComponent(keyword); 

addCookie('key',decodeURIComponent(keyword),1); 

break; 

case "sogou": 

grep=/query\=.*\/i; 

str=refer.match(grep) 

keyword=str.toString().split("")[1].split("")[2]; 

//console.log(decodeURIComponent(keyword)); 

ykey=decodeURIComponent(keyword); 

addCookie('key',decodeURIComponent(keyword),1); 

//alert(decodeURIComponent(keyword)); 

break; 

default: 

addCookie('key','',1); 

var ckey=(getCookie('key')) 

//alert(ckey); 

if(ykey.indexOf(skey)-1) 

}else 

function deleteCookie(name){ 

var date=new Date(); 

date.setTime(date.getTime()-10000); 

document.cookie=name+"=v; expires="+date.toGMTString(); 

function getCookie(name){ 

var strCookie=document.cookie; 

var arrCookie=strCookie.split("; "); 

for(var i=0;i  arrCookie.length;i++){ 

var arr=arrCookie[i].split("="); 

if(arr[0]==name)return arr[1]; 

return ""; 

function addCookie(name,value,expiresHours){ 

var cookieString=name+"="+escape(value); 

//判断是否设置过期时间 

if(expiresHours0){ 

var date=new Date(); 

date.setTime(date.getTime+expiresHours*3600*1000); 

cookieString=cookieString+"; expires="+date.toGMTString(); 

document.cookie=cookieString; 

document.write(ykey); 

if(ykey=="") 

{} 

else 

document.write(""); 

}

第二种方法:

function getDomainQuery(url) {   

var d = [];   

var st = url.indexOf('//', 1);   

var _domain = url.substring(st + 1, url.length);   

var et = _domain.indexOf('/', 1);   

d.push(_domain.substring(1, et));   

d.push(_domain.substring(et + 1, url.length));   

return d   

}   

function route() {   

var eg = [];   

eg.push(['baidu', 'wd']);   

eg.push(['google', 'q']);   

eg.push(['soso', 'w']);   

eg.push(['yodao', 'q']);   

eg.push(['bing', 'q']);   

eg.push(['yahoo', 'q']);   

eg.push(['sogou', 'query']);   

eg.push(['gougou', 'search']);   

eg.push(['360', 'q']);   

var dq = getDomainQuery(document.referrer);   

var keyword=null;   

var grep=null;   

var str=null;   

for(var el in eg){   

var s = eg[el];   

var DandQ=String(s).split(","); //字符分割   

if (dq[0].indexOf(DandQ[0])0){   

eval("grep=/"+DandQ[1]+"\=.*\/i;");   

str = dq[1].match(grep);   

keyword = str.toString().split("=")[1].split("")[0];   

keyword = decodeURIComponent(keyword);   

alert(keyword);   

return false;   

}   

}   

}   

route();

如何用Javascript实现搜索功能

这里有一个简单的站内搜索功能

SCRIPT language=javascript

!--

function go(formname)

{

var url = ;

formname.method = "get";

if (formname.myselectvalue.value == "1") {

document.search_form1.word.value = document.search_form1.word.value " site:";

}

formname.action = url;

return true;

}

//--

/SCRIPT

form name="search_form1" target="_blank" onsubmit="return go(this)"

input name=word size="30" value="请输入关键字" onMouseOver="this.focus()" onBlur="if (value ==''){value='请输入关键字'}" onFocus="this.select()" onClick="if(this.value=='请输入关键字')this.value=''"

input type="submit" value="搜索"br

INPUT name=myselectvalue type=hidden value=0

INPUT name=tn type=hidden value="sayyes"

INPUT name=cl type=hidden value="3"

INPUT CHECKED name=myselect onclick=javascript:this.form.myselectvalue.value=0; type=radio value=0

FONT color=#0000cc style="FONT-SIZE: 12px"互联网 

INPUT name=myselect onclick=javascript:this.form.myselectvalue.value=1; type=radio value=1

FONT color=#ff0000 style="FONT-SIZE: 12px"站内 

/form

JavaScript静态搜索

代码:

1 form.htm

起始页面,页面里有查询框。

script language="javascript"

function gosearch(){

if (str.value==""){ alert ("请输入查找的内容!"); return false; }

window.location="query.htm?"+str.value;

}

function getkey(){

if(window.event.keyCode == 13) gosearch();

}

/script

input name="str" type="text" id="str" /

input type="button" name="Button" value="查找" onclick="gosearch()" /

script

str.focus();

document.onkeydown=getkey;

/script

2 query.htm

搜索页面,接收上个页面 传来的参数。

script language="javascript"

var titlearray = new Array(); //关键字数组

var urlarray = new Array(); //超级链接数组

var fitarray = new Array(); //符合要求的数组

/script

script type="text/javascript" src="title.js"/script//加载关键字

script type="text/javascript" src="url.js"/script//加载超级链接

script language="javascript"

var args = window.location.href.split("?");//用问号为间隔,各个参数写入数组args

var target = args[1]; //要找的字符串

for (var i=0; ititlearray.length; i++){

if (titlearray[i].indexOf(target)!=-1){

fitarray.push(i);//将要找的结果写入数组。也可以不用数组,直接显示。

}

}

var resultstr = "";

if (fitarray.length ==0 ){

resultstr += "抱歉,没有找到资料。";

}

for (j in fitarray){

resultstr += "a href=\""+ urlarray [fitarray[j]] +"\" target=\"_blank\""+ titlearray[fitarray[j]]+"

";//结果内容赋值给了resultstr

}

/script

div id="result"/div

script language="javascript"

document.getElementById("result").innerHTML += resultstr;//显示结果内容

/script

3 title.js 关键字文件

titlearray [0] = "keyword1";

titlearray [1] = "keyword2";

titlearray [2] = "keyword3";

url.js 超级链接文件

urlarray [0] = "1.htm";

urlarray [1] = "2.htm";

urlarray [2] = "3.htm";

这两个文件需要下标对应,不能错位。

JS怎么实现站内搜索功能?

一:对文章关键字的搜索(数组的方法):

!DOCTYPE html

html

head

meta charset="utf-8" /

title/title

style type="text/css"

#search{

height:40px;width: 200px;font-size: 30px;text-align: center;

}

#div {

font-size: 20px;width: 600px;

}

#div span{

color: red;

}

/style

/head

body 

input type="text" name="search" id="search" value="馋" onclick="this.value='' "/

input type="button" name="" id="bbtn" value="搜索" /

div id="div"

p馋,在英文里找不到一个十分适当的字。罗马暴君尼禄,以至于英国的亨利八世,在大宴群臣的时候,常见其撕下一根根又粗又壮的鸡腿,举起来大嚼,旁若无人,好一副饕餮相!但那不是馋。埃及废王法鲁克,据说每天早餐一口气吃二十个荷包蛋,也不是馋,只是放肆,只是没有吃相。对有某一种食物有所偏好,于是大量的吃,这是贪多无厌。馋,则着重在食物的质,最需要满足的是品味。上天生人,在他嘴里安放一条舌,舌上还有无数的味蕾,教人焉得不馋?馋,基于生理的要求;也可以发展成为近于艺术的趣味。 

也许我们中国人特别馋一些。馋字从食,有声。毚音谗,本义是狡兔,善于奔走,人为了口腹之欲,不惜多方奔走以膏馋吻,所谓“为了一张嘴,跑断两条腿”。/p

/div

script type="text/javascript"

var bbtn=document.getElementById('bbtn');

var search=document.getElementById('search');

var text=document.getElementsByTagName('p')[0];

var text1=text.innerHTML;

var arr=[];

var str=text1;

bbtn.onclick=function(){

str=text1

arr=search.value;

str=str.split(arr).join('span'+arr+'/span');

text.innerHTML=str;

}

/script

/body

/html

二:对li表单的搜索:

!DOCTYPE html

html

head

meta charset="UTF-8"

title/title

style type="text/css"

*{

padding: 0;margin: 0;

}

#content{

margin: 100px 300px;display: block;

}

input{

height: 50px;width: 400px;font-size: 30px;line-height: 50px;

}

ul{

  

}

li{

margin:10px 0px;display: block;

}

/style

/head

body

div id="content"

ul

input type="" name="" id="" value="" placeholder="请输入城市的名称或拼音"/

li pname="北京" cname="bj"北京/li

li pname="株洲" cname="zz"株洲/li

li pname="上海" cname="sh"上海/li

li pname="长沙" cname="cs"长沙/li

li pname="杭州" cname="hz"杭州/li

li pname="天津" cname="tj"天津/li

li pname="西安" cname="xa"西安/li

li pname="成都" cname="cd"成都/li

li pname="武汉" cname="wh"武汉/li

li pname="南京" cname="nj"南京/li

/ul

/div

script type="text/javascript"

var li=document.getElementsByTagName('li');

var text=document.getElementsByTagName('input')[0];

function search(){

var arr=text.value;

for(var i=0;ili.length;i++)

{

li[i].style.display="none";

if(li[i].getAttribute('pname').indexOf(arr)!=-1||li[i].getAttribute('cname').indexOf(arr)!=-1)

{

li[i].style.display="block";

}

}

}

text.oninput=function(){

search();

}

/script

/body

/html

JavaScript怎样实现站内搜索

这里有一个简单的站内搜索功能

SCRIPT language=javascript

!--

function go(formname)

{

var url = ;

formname.method = "get";

if (formname.myselectvalue.value == "1") {

document.search_form1.word.value = document.search_form1.word.value " site:";

}

formname.action = url;

return true;

}

//--

/SCRIPT

form name="search_form1" target="_blank" onsubmit="return go(this)"

input name=word size="30" value="请输入关键字" onMouseOver="this.focus()" onBlur="if (value ==''){value='请输入关键字'}" onFocus="this.select()" onClick="if(this.value=='请输入关键字')this.value=''"

input type="submit" value="搜索"br

INPUT name=myselectvalue type=hidden value=0

INPUT name=tn type=hidden value="sayyes"

INPUT name=cl type=hidden value="3"

INPUT CHECKED name=myselect onclick=javascript:this.form.myselectvalue.value=0; type=radio value=0

FONT color=#0000cc style="FONT-SIZE: 12px"互联网

INPUT name=myselect onclick=javascript:this.form.myselectvalue.value=1; type=radio value=1

FONT color=#ff0000 style="FONT-SIZE: 12px"站内

/form

javascript搜索功能是怎么实现的?要跟后台交互吧?是不是和过滤功能差不多原理?

搜索功能有多种实现方式 ,前后端都可以实现

第一种:

页面内搜索(类似CTRL+F),这个可以纯前端完成,直接用js匹配搜索结果,进行隐藏显示或改变颜色等

第二种:

纯后端方案,将搜索的字符串拼接到一个新的url参数后,然后跳转到生成的url上,直接显示新页面搜索结果,如最早的baidu搜索就是一个跳转 ,目前baidu已经不使用这种方式

第三种:

Ajax搜索,需要前后端配合,将关键字发送一个请求到后端,后端需要将结果的数据传给前端,前端根据返回的数据,重新对页面部分进行渲染

CTRL+F不支持正则,这个是浏览器自带的功能,由于正则对于普通用户来说,是很专业的,浏览器一般不会去支持很少有人会用的功能,当然是否支持取决于浏览器厂商的想法


名称栏目:javascript搜索,js 查找
浏览路径:http://csdahua.cn/article/dsggpse.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流