javascript实现搜索引擎关键词高亮显示实现代码

原理:

在页面加载完成时获取页面来源(document.referrer),并分析搜索引擎关键词,然后获取页面上所有元素,递归查询是否含有搜索关键字,如果有,就创建一个 span 元素,并应用关键词样式,替换原有节点

 

 代码如下 复制代码

<script type="text/javascript">
<!--
// 说明:获取搜索引擎关键字并高亮显示
// 整理:http://www.111cn.net
 

function highlightWord(node,word) {
    // Iterate into this nodes childNodes
    if (node.hasChildNodes) {
        var hi_cn;
        for (hi_cn=0;hi_cn<node.childNodes.length;hi_cn++) {
            highlightWord(node.childNodes[hi_cn],word);
        }
    }
 
    // And do this node itself
    if (node.nodeType == 3) { // text node
        tempNodeVal = node.nodeValue.toLowerCase();
        tempWordVal = word.toLowerCase();
        if (tempNodeVal.indexOf(tempWordVal) != -1) {
            pn = node.parentNode;
            if (pn.className != "searchword") {
                // word has not already been highlighted!
                nv = node.nodeValue;
                ni = tempNodeVal.indexOf(tempWordVal);
                // Create a load of replacement nodes
                before = document.createTextNode(nv.substr(0,ni));
                docWordVal = nv.substr(ni,word.length);
                after = document.createTextNode(nv.substr(ni+word.length));
                hiwordtext = document.createTextNode(docWordVal);
                hiword = document.createElement("span");
                hiword.className = "searchword";
                hiword.appendChild(hiwordtext);
                pn.insertBefore(before,node);
                pn.insertBefore(hiword,node);
                pn.insertBefore(after,node);
                pn.removeChild(node);
            }
        }
    }
}
 
function googleSearchHighlight() {
    if (!document.createElement) return;
    ref = document.referrer;
    if (ref.indexOf('?') == -1) return;
    qs = ref.substr(ref.indexOf('?')+1);
    qsa = qs.split('&');
    for (i=0;i<qsa.length;i++) {
        qsip = qsa[i].split('=');
        if (qsip.length == 1) continue;
        if (qsip[0] == 'q' || qsip[0] == 'p') { // q= for Google, p= for Yahoo
            words = unescape(decodeURIComponent(qsip[1].replace(/+/g,' '))).split(/s+/);
            for (w=0;w<words.length;w++) {
                highlightWord(document.getElementsByTagName("body")[0],words[w]);
            }
        }
    }
}
 
window.onload = googleSearchHighlight;
 
//-->
</script>

css代码

 代码如下 复制代码

<style type="text/css">
.searchword {
    background-color: yellow;
}
</style>

时间: 2024-10-31 12:28:54

javascript实现搜索引擎关键词高亮显示实现代码的相关文章

php实现搜索多关键词高亮显示程序代码

项目结构: 开始搜索:   这里搜索关键字("大""这") 开始搜索:   这里搜索关键字("大""这") 搜索结果:  高亮显示 项目所需数据库结构: 数据库连接文件  代码如下 复制代码 <?php $conn = @ mysql_connect("localhost", "root", "") or die("数据库链接错误"); my

javascript实现页面内关键词高亮显示代码

 关键词高亮想必大家对它都不陌生吧,应用也比较广泛的,下面为大家介绍下通过javascript是如何实现页面内关键词高亮显示 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  <html xmlns="http://www.w3.or

jquery实现页面关键词高亮显示的方法

 这篇文章主要介绍了jquery实现页面关键词高亮显示的方法,实例分析了jQuery插件highlight实现高亮显示的技巧,非常具有实用价值,需要的朋友可以参考下     本文实例讲述了jquery实现页面关键词高亮显示的方法.分享给大家供大家参考.具体分析如下: 通过jquery对页面搜索关键词进行高亮显示 支持中文多词页面中高亮显示 1. JavaScript代码如下: 代码如下: jQuery.fn.extend({ highlight: function(search, configs

php获取从百度搜索进入网站的关键词的详细代码_php技巧

分享一个php获取从百度搜索进入网站的关键词的代码,有需要的朋友可以参考一下: 代码: 复制代码 代码如下: <?php function search_word_from() { $referer = isset($_SERVER['HTTP_REFERER'])?$_SERVER['HTTP_REFERER']:''; if(strstr( $referer, 'baidu.com')){ //百度 preg_match( "|baidu.+wo?r?d=([^\\&]*)|i

周震宇:浅析搜索引擎关键词优化重点

中介交易 SEO诊断 淘宝客 云主机 技术大厅 一个做好的SEO站点,它的大部分流量来源是搜索引擎送来的.也就是说了,用户是通过在搜索引擎搜索相关关键词而来到你的网站的;所以我们说,一个网站的内容建设就是围绕着关键词而进行的;这就引出了今天的话题点-搜索引擎优化的核心是关键词 大家在做站前,一般都会已经构思好大概的网站规划,结构,以及关键词!关键词的选择其实很有深度,而非大家表面上看到的那样,随便几个相关的词语就行了.那是错误的.正确的关键词应该在相关的网站上查询其对应的热度,搜索量,优化难度等

搜索引擎关键词劫持之php篇(源码与分析)

摘要:其实原理很简单: 搜索引擎关键词劫持的过程实际上就是,修改肉鸡站点(webshell站点)A的首页(希望被搜索引擎收录的页面,一般情况下是首页),使之做出如下判断: if(来访者是蜘蛛){ 输出指定内容 } if(用户是从搜索引擎点击进入网站的){ 跳转我们希... 其实原理很简单:搜索引擎关键词劫持的过程实际上就是,修改肉鸡站点(webshell站点)A的首页(希望被搜索引擎收录的页面,一般情况下是首页),使之做出如下判断: if(来访者是蜘蛛){输出指定内容}if(用户是从搜索引擎点击

Javascript 遮罩层和加载效果代码

这篇文章介绍了Javascript 遮罩层和加载效果代码,有需要的朋友可以参考一下   复制代码 代码如下:  //loading function showLoad(tipInfo) { var iWidth = 120; //弹出窗口的宽度; var iHeight = 0; //弹出窗口的高度; var scrolltop = 0; var scrollleft = 0; var cheight = 0; var cwidth = 0; var eTip = document.create

Javascript实现音乐随机播的代码

javascript|随机 将以下代码放在<head>与</head>之间即可. <SCRIPT language="JavaScript"><!--var sound1="midi/1.mid"var sound2="midi/2.mid"var sound3="midi/3.mid"var sound4="midi/4.mid"var sound5="

vim下高亮显示php代码

vim是一款跨平台编辑器,可以在linux下使用,也可以在windows下使用官方网站www.vim.org 高亮显示php代码 进入vim后,在普通模式下输入如下命令,开启php代码高亮显示 :syntax enable :source $VIMRUNTIME/syntax/php.vim