search.js
2.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
/**
* 搜索JS
* @author: xuqi<qi.xu@yoho.cn>
* @date: 2015/10/19
*/
var $ = require('jquery'),
security = require('../plugin/security'),
Hammer = require('yoho.hammer');
var $input = $('#search-input input');
var $clear = $('#search-input .clear-input');
var $icon = $('.search-icon');
var $form = $('#search-form');
var $history = $('.history');
var $historySearch = $('.history-search');
var $clearHistory = $('#clear-history');
var writeSearch = require('./write-search');
var ranToken = writeSearch.getRanToken();
var chHammer, cHammer;
chHammer = new Hammer($clearHistory[0]);
chHammer.on('tap', function() {
localStorage.removeItem('historys');
$history.html('');
$historySearch.hide();
$clearHistory.hide();
window.rePosFooter();
});
$input.on('input', function() {
if ($input.val() === '') {
$icon.css('color', '#b2b2b2');
$clear.addClass('hide');
} else {
$icon.css('color', '#666');
$clear.removeClass('hide');
}
});
cHammer = new Hammer($clear[0]);
cHammer.on('tap', function() {
$input.val('').trigger('input');
});
$('#search').on('touchend', function() {
if (security.hasDangerInput()) {
return false;
}
$(this).closest('form').submit();
return false;
});
function isLocalStorageSupported() {
var testKey = 'test',
storage = Window.prototype.localStorage;
try {
storage.setItem(testKey, 'testValue');
storage.removeItem(testKey);
return true;
} catch (error) {
return false;
}
}
//初始化历史搜索的内容
(function() {
var html = '',
history,
historys, i;
if (localStorage) {
historys = localStorage.getItem('historys');
if (historys && historys.length > 0) {
historys = historys.split(ranToken);
for (i = historys.length; i > 0; i--) {
history = historys[i - 1];
if (history === '') {
continue;
}
html += '<li><a href="/?query=' + history + '">' + history + '</li>';
}
$history.html(html);
$clearHistory.removeClass('hide');
$historySearch.removeClass('hide');
window.rePosFooter();
}
}
}());
if (isLocalStorageSupported) {
writeSearch.bindWirteLocal($form);
}