扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
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();
这里有一个简单的站内搜索功能
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
代码:
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";
这两个文件需要下标对应,不能错位。
一:对文章关键字的搜索(数组的方法):
!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
这里有一个简单的站内搜索功能
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
搜索功能有多种实现方式 ,前后端都可以实现
第一种:
页面内搜索(类似CTRL+F),这个可以纯前端完成,直接用js匹配搜索结果,进行隐藏显示或改变颜色等
第二种:
纯后端方案,将搜索的字符串拼接到一个新的url参数后,然后跳转到生成的url上,直接显示新页面搜索结果,如最早的baidu搜索就是一个跳转 ,目前baidu已经不使用这种方式
第三种:
Ajax搜索,需要前后端配合,将关键字发送一个请求到后端,后端需要将结果的数据传给前端,前端根据返回的数据,重新对页面部分进行渲染
CTRL+F不支持正则,这个是浏览器自带的功能,由于正则对于普通用户来说,是很专业的,浏览器一般不会去支持很少有人会用的功能,当然是否支持取决于浏览器厂商的想法
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流