所有分类
  • 所有分类
  • 后端开发
找信息不再烦恼!揭秘网页查找新技能,秒定目标、轻松辨识

找信息不再烦恼!揭秘网页查找新技能,秒定目标、轻松辨识

这个功能主要是实现在查找框内输入字符,之后按后面的上一个下一个按钮,会自动把查询区域内的匹配字符用特殊的样式标记,之后可以继续按上一个下一个按钮把按照顺序浏览匹配字符,并把当前匹配的字符用另一种样式与其他匹配字符加以区别。focusMove

最近我在搞一个框架,结果被一堆人改得面目全非。我天天盯着那些代码,看得我头都要晕了。不过不得不说,我感觉自己进步还挺大的。我做了一个后台可配置前台查看两个库不同数据范围的东西,感觉还挺满意的。今天就先跟大家分享一下这几天做的一个功能,就是html页面的查找功能。你有没有遇到过在一个网页里找特定内容的困扰?你是不是也常常需要在页面中查找某个关键字?这个问题可不小!毕竟网页内容多得让人眼花缭乱,如果没有一个快速而准确的查找功能,那简直就是大海捞针!好消息来了!我给大家带来了一个超级实用的解决方案!我们可以在查找框内输入字符,然后按下面的上一个下一个按钮。然后神奇的事情发生了——页面会自动把查询区域内匹配到的字符用特殊样式标记出来!这样一来,我们就可以轻松地按顺序浏览匹配字符,并且能够清晰地区分当前匹配的字符和其他匹配字符。你有没有想过,如果没有这个查找功能,我们在海量的网页内容中找到自己需要的信息会是多么困难?简直就是让人抓狂!所以,这个功能对于提高我们的工作效率和阅读体验来说,绝对是必不可少的!不用担心,我已经为大家准备好了解决方案!首先,我们需要先把上一次的查询结果清除掉。然后,根据输入的关键字,使用正则表达式将区域内所有匹配的字符都加上特殊样式。比如,在方法中,我给所有匹配字符都加了一个类名为”result”的标签。同时,我还用一个变量记录下了关键字的值(下次再进入时可以直接比较,如果一样的话说明是要看下一个或者上一个的内容,就不用再用正则表达式匹配了)。另外,我还记录了查询出来的总数和一个标志位。你有没有想过,如果没有这个查找功能,我们在海量的网页内容中找到自己需要的信息会是多么困难?简直就是让人抓狂!所以,这个功能对于提高我们的工作效率和阅读体验来说,绝对是必不可少的!不用担心,我已经为大家准备好了解决方案!首先,我们需要先把上一次的查询结果清除掉。然后,根据输入的关键字,使用正则表达式将区域内所有匹配的字符都加上特殊样式。比如,在方法中,我给所有匹配字符都加了一个类名为”result”的标签。同时,我还用一个变量记录下了关键字的值(下次再进入时可以直接比较,如果一样的话说明是要看下一个或者上一个的内容,就不用再用正则表达式匹配了)。另外,我还记录了查询出来的总数和一个标志位。现在你知道了!有了这个查找功能,我们再也不用在海量网页中苦苦寻找自己需要的信息了。工作效率和阅读体验都会得到大幅提升!所以,如果你还没有尝试过这个功能,赶紧去试一试!相信我,你一定会爱上它的!好了,今天就先给大家分享到这里。希望我的文章对你有所帮助。如果你有任何疑问或者想法,请务必留言给我。我会及时回复你的!同时也非常感谢大家对我们网站的支持。记得点赞和分享!

找信息不再烦恼!揭秘网页查找新技能,秒定目标、轻松辨识

 

  //搜索功能
        var oldKey0 = "";
        var index0 = -1;var oldCount0 = 0;
        var newflag = 0;
        var currentLength = 0;
        function wordSearch(flg) {
            var key = $("#key").val(); //取key值
            if (!key) {
                return; //key为空则退出
            }
            getArray();
            focusNext(flg);
        }
        function focusNext(flg) {
            if (newflag == 0) {//如果新搜索,index清零
                index0 = 0;
            }
            if (!flg) {
                if (oldCount0 != 0) {//如果还有搜索
                    if (index0 < oldCount0) {//左边如果没走完,走左边
                        focusMove(index0);
                        index0++;
                    } else if (index0 == oldCount0) {//都走完了
                        index0 = 0;
                        focusMove(index0);
                        index0++;
                    }
                    else {
                        index0 = 0;//没确定
                        focusMove(index0);
                        index0++;
                    }
                }
            } else {
                if (oldCount0 != 0) {//如果还有搜索
                    if (index0  0) {//左边如果没走完,走左边
                        index0--;
                        focusMove(index0);
                    } else if (index0 == 0) {//都走完了
                        index0 = oldCount0;
                        index0--
                        focusMove(index0);
                    }
                }
            }
        }
        function getArray() {
            newflag = 1;
            $(".contrast .result").removeClass("res");
            var key = $("#key").val(); //取key值
            if (!key) {
                oldKey0 = "";
                return; //key为空则退出
            }
            if (oldKey0 != key || $(".current").length != currentLength) {
                //重置
                index0 = 0;
                var index = 0;
                $(".contrast .result").each(function () {
                    $(this).replaceWith($(this).html());
                });
                pos0 = new Array();
                if ($(".contrast-wrap").hasClass("current")) {
                    currentLength = $(".current").length;
                    $(".current .contrast").each(function () {
                        $(this).html($(this).html().replace(new RegExp(key, "gm"), "" + key + "")); // 替换
                    });
                } else {
                    $(".contrast-wrap").addClass('current');
                    currentLength = $(".current").length;
                    $(".contrast").each(function () {
                        $(this).html($(this).html().replace(new RegExp(key, "gm"), "" + key + "")); // 替换
                    });
                }
                //$("#key").val(key);
                oldKey0 = key;
                //$(".contrast .result").each(function () {
                //    $(this).parents('.contrast-wrap').addClass('current');
                //    pos0.push($(this).offset().top);
                //});
                // pos0.push($(".contrast .result:eq(2)").offset().top - $(".contrast .result:eq(2)").parents(".contrast").offset().top);
                oldCount0 = $(".contrast .result").length;
                newflag = 0;
            }
        }
        function focusMove(index0) {
            $(".contrast .result:eq(" + index0 + ")").parents('.contrast-wrap').addClass('current');
            $(".contrast .result:eq(" + index0 + ")").addClass("res");
            var top = $(".contrast .result:eq(" + index0 + ")").offset().top + $(".contrast .result:eq(" + index0 + ")").parents(".contrast").scrollTop();
            var intop = top - $(".contrast .result:eq(" + index0 + ")").parents(".contrast").offset().top;
            $(".contrast .result:eq(" + index0 + ")").parents(".contrast").animate({ scrollTop: intop }, 200);
            if ($(".contrast .result:eq(" + index0 + ")").parents(".contrast").scrollTop() == 0) {
                $("html, body").animate({ scrollTop: top - 200 }, 200);
            } else {
                $("html, body").animate({ scrollTop: $(".contrast .result:eq(" + index0 + ")").parents(".contrast").offset().top - 200 }, 200);
            }
        }
        $('#key').change(function () {
            if ($('#key').val() == "") {
                index0 = 0;
                $(".contrast .result").each(function () {
                    $(this).replaceWith($(this).html());
                });
                oldKey0 = "";
            }
        });
    

原文链接:https://www.icz.com/technicalinformation/web/2024/03/11749.html,转载请注明出处~~~
0

评论0

请先
注意:请收藏好网址www.icz.com,防止失联!站内免费资源持续上传中…!赞助我们
显示验证码
没有账号?注册  忘记密码?