zoukankan      html  css  js  c++  java
  • 高亮显示搜索的关键词

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset=utf-8>
            <title>JS Bin</title>
            <style>
                ::-moz-selection {
                    color: gold;
                    background: red;
                }
                
                ::selection {
                    color: gold;
                    background: red;
                }
            </style>
        </head>
        <body>
            <label for="">key word:</label>
            <input type="text" id="key_word" />
            <button id="find_btn" type="button">find</button>
            <label for="" id="res_len" style="display: none;"><input type="text" readonly="readonly"/></label>
            <button id="prev" type="button">prev</button>
            <button id="next" type="button">next</button>
            <br />
            <p></p>
            <textarea id="worlds" style=" 400px; height: 300px;" readonly="readonly">兼容:IE9+、Firefox、chrome、safari。“::selection”只能设置两个属性,一个就是background,另一个就是color属性,设置其他属性是没有任何效果的。兼容:IE9+、Firefox、chrome、safari。“::selection”只能设置两个属性,一个就是background,另一个就是color属性,设置其他属性是没有任何效果的。兼容:IE9+、Firefox、chrome、safari。“::selection”只能设置两个属性,一个就是background,另一个就是color属性,设置其他属性是没有任何效果的。</textarea>
            
            <script>
                var worlds = document.getElementById('worlds');
                var key_word;
                var get_arr;
                var current;
                var key_word;
                var search_len;
                document.getElementById('find_btn').onclick = function() {
                    get_arr = [];
                    current = 0;
                    key_word = document.getElementById('key_word').value;
                    var index = worlds.innerHTML.indexOf(key_word);
                    while(index !== -1) {
                        get_arr.push(index);
                        index = worlds.innerHTML.indexOf(key_word, index + 1);
                    }
                    search_len = get_arr.length;
                    document.getElementById('res_len').style.display = 'inline-block';
                    if (search_len) {
                        handle_selection();
                    } else {
                        document.getElementById('res_len').childNodes[0].value = current + '/' + search_len;
                    }
                }
    
                document.getElementById('prev').onclick = function() {
                    if(current !== 0) {
                        current--;
                    }
                    if (search_len) {
                        handle_selection();
                    }
                }
    
                document.getElementById('next').onclick = function() {
                    if(current !== get_arr.length - 1) {
                        current++;
                    }
                    if (search_len) {
                        handle_selection();
                    }
                }
    
                function handle_selection() {
                    worlds.focus();
                    worlds.setSelectionRange(get_arr[current], get_arr[current] + key_word.length);
                    document.getElementById('res_len').childNodes[0].value = current + 1 + '/' + search_len;
                }
            </script>
        </body>
    </html>

    效果:

  • 相关阅读:
    C#制作自定义安装程序
    (转)Linq DataTable的修改和查询
    (转)将rdlc报表作为资源嵌套使用
    C# 中的委托和事件(2)
    C# 中的委托和事件(1)
    C# 自定义控件入门
    Spring中自动装配(转)
    从程序员到CTO的Java技术路线图 (转自安卓巴士)
    spring四种依赖注入方式
    MyEclipse提示键配置、提示快捷键、提示背景色、关键字颜色、代码显示、编...
  • 原文地址:https://www.cnblogs.com/bagexiaowenti/p/8013002.html
Copyright © 2011-2022 走看看