js 简单的搜索历史记录

7 篇文章 0 订阅
3 篇文章 0 订阅
最近做了个简单的搜索历史记录功能,利用了js的cookie。废话不多说,代码如下:
<script type="text/javascript">
    var suggestObj = {};
    suggestObj.tips = {
        tips01: ''
    };
    suggestObj.searchData = [];

    suggestObj.events = {
        closedAd: function () {
            document.querySelectorAll("#closedAdId")[0].addEventListener("touchend", function () {
                $(".ads").hide();
            });
        },
//      输入内容请求ajax并在页面显示
        keydownText: function () {
            document.getElementById("searchInput").addEventListener('input', function () {
                var inputVal = $("#searchInput").val();
                var carList = $(".searchCarList");
                var carListLi = '';
                var url = "/suggestmapps.php?";
                $.ajax({
                    type: "GET",
                    url: url,
                    dataType: "jsonp",
                    data: {q: inputVal},
                    async: true,
                    jsonp: "callback",//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(默认为:callback)
                    jsonpCallback: "getSuggestInfo",//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名
                    success: function (data) {
                        if (data.code == 1) {
                            for (var i = 0; i < data.info.length; i++) {
                                carListLi += '<li><a href="' + data.info[i].url + '" οnclick="suggestObj.events.saveSearchInfo(this)"><span>车系页>></span><em>' + data.info[i].name + '</em></a></li>';

                            }
                            carList.html(carListLi);
                            $("#historyRecord h1").hide();
                            $("#historyRecord .clear").hide();
                        }
                    },
                    error: function () {
                    }
                });
            });
        },
        saveSearchInfo: function (t) {
            var val = $(t).children("em").html();
            val = val + ':::' + t.href;
            var valIndex = suggestObj.searchData.indexOf(val);

            if (valIndex == -1) {
                suggestObj.searchData.unshift(val);
            } else {
                suggestObj.searchData.splice(valIndex, 1);
                suggestObj.searchData.unshift(val);
            }

            if (suggestObj.searchData.length > 20) {
                suggestObj.searchData.length = 20;
            }

            var suggestName_Url = suggestObj.searchData.join('@@@');

            var suggestNameInfo = $.cookie('suggestNameUrl');
            if (suggestNameInfo) {
                suggestName_Url += '@@@' + suggestNameInfo;
            }

            var eday = new Date();
            eday.setTime(eday.getTime() + (3600 * 24 * 3600000));
            $.cookie('suggestNameUrl', suggestName_Url, {
                path: '/',
                domain: 'xxx.com',
                expires: eday
            });
        },
        getInputFocus: function () {
            var currentCookie = $.cookie('suggestNameUrl');
            var historyHtml = $(".searchCarList");
            var historyHtmlLi = "";
            alert(currentCookie);
            if ( currentCookie != null && typeof currentCookie != undefined) {
                var strSplit = currentCookie.split("@@@"); //字符分割
                for (var i = 0; i < strSplit.length; i++) {
                    if(i>5) break;
                    var historyHtmlObg = strSplit[i].split(":::");
                    historyHtmlLi += '<li><a href="' + historyHtmlObg[1] + '"><span>车系页>></span><em>' + historyHtmlObg[0] + '</em></a></li>';
                }
                historyHtml.html(historyHtmlLi);
                $("#historyRecord h1").show();
                $("#historyRecord .clear").css("display", "block");
            }
        },
        delCookie: function () {
            var date=new Date();
            date.setTime(date.getTime()-10000);
            $.cookie('suggestNameUrl','',{path: '/', domain: 'xxx.com', expires:date});
        },
        onClickBtn: function () {
            document.querySelectorAll(".clear")[0].addEventListener("click", function () {
                $("#historyRecord").hide();
                suggestObj.events.delCookie();
            })
        }
    };

    //调用
    suggestObj.events.closedAd();
    suggestObj.events.keydownText();
    suggestObj.events.onClickBtn();
</script>

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在 JavaScript 中为搜索框添加历史记录,你可以使用 localStorage 对象来存储搜索历史。以下是一个简单的示例代码: ```javascript // 获取搜索框元素 const searchBox = document.getElementById('search-box'); // 监听搜索框的键盘事件 searchBox.addEventListener('keyup', function(event) { // 按下回车键时保存搜索历史 if (event.key === 'Enter') { // 获取当前输入的搜索关键字 const keyword = searchBox.value.trim(); // 确保关键字不为空 if (keyword !== '') { // 获取之前保存的搜索历史 const searchHistory = localStorage.getItem('searchHistory') ? JSON.parse(localStorage.getItem('searchHistory')) : []; // 将当前关键字添加到搜索历史中 searchHistory.push(keyword); // 更新 localStorage 中的搜索历史 localStorage.setItem('searchHistory', JSON.stringify(searchHistory)); // 清空搜索框 searchBox.value = ''; } } }); ``` 在上面的示例中,我们首先获取了搜索框的元素,并添加了一个键盘事件监听器。当用户按下回车键时,我们获取当前输入的关键字,并将其存储到 localStorage 中的名为 "searchHistory" 的变量中。如果之前没有保存过搜索历史,则创建一个新的空数组。然后,我们将新的关键字添加到数组中,并更新 localStorage 中的搜索历史。最后,我们清空搜索框的值,以便用户可以输入新的关键字。 你可以根据自己的需求进一步扩展这个示例,例如:显示搜索历史,使用户能够点击历史记录并进行搜索等。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值