hexo-theme-shokax 0.2.9 → 0.2.10
Sign up to get free protection for your applications and to get access to all the features.
- package/_config.yml +4 -4
- package/layout/_mixin/comment.pug +2 -1
- package/layout/_partials/layout.pug +8 -8
- package/layout/post.pug +2 -1
- package/package.json +1 -1
- package/source/js/_app/components.js +26 -27
- package/source/js/_app/fireworks.js +28 -42
- package/source/js/_app/global.js +23 -23
- package/source/js/_app/library.js +37 -37
- package/source/js/_app/page.js +76 -77
- package/source/js/_app/player.js +87 -91
- package/source/js/_app/vue.js +6 -6
package/source/js/_app/page.js
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
-
const cardActive =
|
1
|
+
const cardActive = () => {
|
2
2
|
if (!$dom('.index.wrap')) {
|
3
3
|
return;
|
4
4
|
}
|
5
|
-
const io = new IntersectionObserver(
|
6
|
-
entries.forEach(
|
5
|
+
const io = new IntersectionObserver((entries) => {
|
6
|
+
entries.forEach((article) => {
|
7
7
|
if (article.target.hasClass('show')) {
|
8
8
|
io.unobserve(article.target);
|
9
9
|
}
|
@@ -18,30 +18,30 @@ const cardActive = function () {
|
|
18
18
|
root: null,
|
19
19
|
threshold: [0.3]
|
20
20
|
});
|
21
|
-
$dom.each('.index.wrap article.item, .index.wrap section.item',
|
21
|
+
$dom.each('.index.wrap article.item, .index.wrap section.item', (article) => {
|
22
22
|
io.observe(article);
|
23
23
|
});
|
24
24
|
$dom('.index.wrap .item:first-child').addClass('show');
|
25
|
-
$dom.each('.cards .item',
|
26
|
-
['mouseenter', 'touchstart'].forEach(
|
27
|
-
element.addEventListener(item,
|
25
|
+
$dom.each('.cards .item', (element) => {
|
26
|
+
['mouseenter', 'touchstart'].forEach((item) => {
|
27
|
+
element.addEventListener(item, () => {
|
28
28
|
if ($dom('.cards .item.active')) {
|
29
29
|
$dom('.cards .item.active').removeClass('active');
|
30
30
|
}
|
31
31
|
element.addClass('active');
|
32
32
|
}, { passive: true });
|
33
33
|
});
|
34
|
-
['mouseleave'].forEach(
|
35
|
-
element.addEventListener(item,
|
34
|
+
['mouseleave'].forEach((item) => {
|
35
|
+
element.addEventListener(item, () => {
|
36
36
|
element.removeClass('active');
|
37
37
|
}, { passive: true });
|
38
38
|
});
|
39
39
|
});
|
40
40
|
};
|
41
|
-
const registerExtURL =
|
42
|
-
$dom.each('span.exturl',
|
41
|
+
const registerExtURL = () => {
|
42
|
+
$dom.each('span.exturl', (element) => {
|
43
43
|
const link = document.createElement('a');
|
44
|
-
link.href = decodeURIComponent(window.atob(element.dataset.url).split('').map(
|
44
|
+
link.href = decodeURIComponent(window.atob(element.dataset.url).split('').map((c) => {
|
45
45
|
return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
|
46
46
|
}).join(''));
|
47
47
|
link.rel = 'noopener external nofollow noreferrer';
|
@@ -55,12 +55,12 @@ const registerExtURL = function () {
|
|
55
55
|
element.parentNode.replaceChild(link, element);
|
56
56
|
});
|
57
57
|
};
|
58
|
-
const postFancybox =
|
58
|
+
const postFancybox = (p) => {
|
59
59
|
if ($dom(p + ' .md img')) {
|
60
60
|
vendorCss('fancybox');
|
61
|
-
vendorJs('fancybox',
|
61
|
+
vendorJs('fancybox', () => {
|
62
62
|
const q = jQuery.noConflict();
|
63
|
-
$dom.each(p + ' p.gallery',
|
63
|
+
$dom.each(p + ' p.gallery', (element) => {
|
64
64
|
const box = document.createElement('div');
|
65
65
|
box.className = 'gallery';
|
66
66
|
box.attr('data-height', String(element.attr('data-height') || 220));
|
@@ -68,7 +68,7 @@ const postFancybox = function (p) {
|
|
68
68
|
element.parentNode.insertBefore(box, element);
|
69
69
|
element.remove();
|
70
70
|
});
|
71
|
-
$dom.each(p + ' .md img:not(.emoji):not(.vemoji)',
|
71
|
+
$dom.each(p + ' .md img:not(.emoji):not(.vemoji)', (element) => {
|
72
72
|
const $image = q(element);
|
73
73
|
const imageLink = $image.attr('data-src') || $image.attr('src');
|
74
74
|
const $imageWrapLink = $image.wrap('<a class="fancybox" href="' + imageLink + '" itemscope itemtype="https://schema.org/ImageObject" itemprop="url"></a>').parent('a');
|
@@ -92,7 +92,7 @@ const postFancybox = function (p) {
|
|
92
92
|
element.insertAfter(para);
|
93
93
|
}
|
94
94
|
});
|
95
|
-
$dom.each(p + ' div.gallery',
|
95
|
+
$dom.each(p + ' div.gallery', (el, i) => {
|
96
96
|
q(el).justifiedGallery({
|
97
97
|
rowHeight: q(el).data('height') || 120,
|
98
98
|
rel: 'gallery-' + i
|
@@ -114,13 +114,13 @@ const postFancybox = function (p) {
|
|
114
114
|
}, window.jQuery);
|
115
115
|
}
|
116
116
|
};
|
117
|
-
const postBeauty =
|
117
|
+
const postBeauty = () => {
|
118
118
|
loadComments();
|
119
119
|
if (!$dom('.md')) {
|
120
120
|
return;
|
121
121
|
}
|
122
122
|
postFancybox('.post.block');
|
123
|
-
$dom('.post.block').oncopy = async
|
123
|
+
$dom('.post.block').oncopy = async (event) => {
|
124
124
|
showtip(LOCAL.copyright);
|
125
125
|
if (LOCAL.nocopy) {
|
126
126
|
event.preventDefault();
|
@@ -145,25 +145,25 @@ const postBeauty = function () {
|
|
145
145
|
}
|
146
146
|
}
|
147
147
|
};
|
148
|
-
$dom.each('li ruby',
|
148
|
+
$dom.each('li ruby', (element) => {
|
149
149
|
let parent = element.parentNode;
|
150
150
|
if (element.parentNode.tagName !== 'LI') {
|
151
151
|
parent = element.parentNode.parentNode;
|
152
152
|
}
|
153
153
|
parent.addClass('ruby');
|
154
154
|
});
|
155
|
-
$dom.each('ol[start]',
|
155
|
+
$dom.each('ol[start]', (element) => {
|
156
156
|
element.style.counterReset = 'counter ' + parseInt(element.attr('start') - 1);
|
157
157
|
});
|
158
|
-
$dom.each('.md table',
|
158
|
+
$dom.each('.md table', (element) => {
|
159
159
|
element.wrapObject({
|
160
160
|
className: 'table-container'
|
161
161
|
});
|
162
162
|
});
|
163
|
-
$dom.each('.highlight > .table-container',
|
163
|
+
$dom.each('.highlight > .table-container', (element) => {
|
164
164
|
element.className = 'code-container';
|
165
165
|
});
|
166
|
-
$dom.each('figure.highlight',
|
166
|
+
$dom.each('figure.highlight', (element) => {
|
167
167
|
const code_container = element.child('.code-container');
|
168
168
|
const caption = element.child('figcaption');
|
169
169
|
element.insertAdjacentHTML('beforeend', '<div class="operation"><span class="breakline-btn"><i class="ic i-align-left"></i></span><span class="copy-btn"><i class="ic i-clipboard"></i></span><span class="fullscreen-btn"><i class="ic i-expand"></i></span></div>');
|
@@ -172,28 +172,28 @@ const postBeauty = function () {
|
|
172
172
|
copyBtn.remove();
|
173
173
|
}
|
174
174
|
else {
|
175
|
-
copyBtn.addEventListener('click',
|
175
|
+
copyBtn.addEventListener('click', (event) => {
|
176
176
|
const target = event.currentTarget;
|
177
177
|
let comma = '';
|
178
178
|
let code = '';
|
179
|
-
code_container.find('pre').forEach(
|
179
|
+
code_container.find('pre').forEach((line) => {
|
180
180
|
code += comma + line.innerText;
|
181
181
|
comma = '\n';
|
182
182
|
});
|
183
|
-
clipBoard(code,
|
183
|
+
clipBoard(code, (result) => {
|
184
184
|
target.child('.ic').className = result ? 'ic i-check' : 'ic i-times';
|
185
185
|
target.blur();
|
186
186
|
showtip(LOCAL.copyright);
|
187
187
|
});
|
188
188
|
}, { passive: true });
|
189
|
-
copyBtn.addEventListener('mouseleave',
|
190
|
-
setTimeout(
|
189
|
+
copyBtn.addEventListener('mouseleave', (event) => {
|
190
|
+
setTimeout(() => {
|
191
191
|
event.target.child('.ic').className = 'ic i-clipboard';
|
192
192
|
}, 1000);
|
193
193
|
});
|
194
194
|
}
|
195
195
|
const breakBtn = element.child('.breakline-btn');
|
196
|
-
breakBtn.addEventListener('click',
|
196
|
+
breakBtn.addEventListener('click', (event) => {
|
197
197
|
const target = event.currentTarget;
|
198
198
|
if (element.hasClass('breakline')) {
|
199
199
|
element.removeClass('breakline');
|
@@ -205,14 +205,13 @@ const postBeauty = function () {
|
|
205
205
|
}
|
206
206
|
});
|
207
207
|
const fullscreenBtn = element.child('.fullscreen-btn');
|
208
|
-
const removeFullscreen =
|
208
|
+
const removeFullscreen = () => {
|
209
209
|
element.removeClass('fullscreen');
|
210
210
|
element.scrollTop = 0;
|
211
211
|
BODY.removeClass('fullscreen');
|
212
212
|
fullscreenBtn.child('.ic').className = 'ic i-expand';
|
213
213
|
};
|
214
|
-
const fullscreenHandle =
|
215
|
-
const target = event.currentTarget;
|
214
|
+
const fullscreenHandle = () => {
|
216
215
|
if (element.hasClass('fullscreen')) {
|
217
216
|
removeFullscreen();
|
218
217
|
if (code_container && code_container.find('tr').length > 15) {
|
@@ -239,15 +238,15 @@ const postBeauty = function () {
|
|
239
238
|
code_container.style.maxHeight = '300px';
|
240
239
|
code_container.insertAdjacentHTML('beforeend', '<div class="show-btn"><i class="ic i-angle-down"></i></div>');
|
241
240
|
const showBtn = code_container.child('.show-btn');
|
242
|
-
const hideCode =
|
241
|
+
const hideCode = () => {
|
243
242
|
code_container.style.maxHeight = '300px';
|
244
243
|
showBtn.removeClass('open');
|
245
244
|
};
|
246
|
-
const showCode =
|
245
|
+
const showCode = () => {
|
247
246
|
code_container.style.maxHeight = '';
|
248
247
|
showBtn.addClass('open');
|
249
248
|
};
|
250
|
-
showBtn.addEventListener('click',
|
249
|
+
showBtn.addEventListener('click', () => {
|
251
250
|
if (showBtn.hasClass('open')) {
|
252
251
|
removeFullscreen();
|
253
252
|
hideCode();
|
@@ -259,26 +258,26 @@ const postBeauty = function () {
|
|
259
258
|
});
|
260
259
|
}
|
261
260
|
});
|
262
|
-
$dom.asyncifyEach('pre.mermaid > svg',
|
261
|
+
$dom.asyncifyEach('pre.mermaid > svg', (element) => {
|
263
262
|
const temp = element;
|
264
263
|
temp.style.maxWidth = '';
|
265
264
|
});
|
266
|
-
$dom.each('.reward button',
|
267
|
-
element.addEventListener('click',
|
265
|
+
$dom.each('.reward button', (element) => {
|
266
|
+
element.addEventListener('click', (event) => {
|
268
267
|
event.preventDefault();
|
269
268
|
const qr = $dom('#qr');
|
270
269
|
if (qr.display() === 'inline-flex') {
|
271
270
|
transition(qr, 0);
|
272
271
|
}
|
273
272
|
else {
|
274
|
-
transition(qr, 1,
|
273
|
+
transition(qr, 1, () => {
|
275
274
|
qr.display('inline-flex');
|
276
275
|
});
|
277
276
|
}
|
278
277
|
});
|
279
278
|
});
|
280
|
-
$dom.asyncifyEach('.quiz > ul.options li',
|
281
|
-
element.addEventListener('click',
|
279
|
+
$dom.asyncifyEach('.quiz > ul.options li', (element) => {
|
280
|
+
element.addEventListener('click', () => {
|
282
281
|
if (element.hasClass('correct')) {
|
283
282
|
element.toggleClass('right');
|
284
283
|
element.parentNode.parentNode.addClass('show');
|
@@ -288,12 +287,12 @@ const postBeauty = function () {
|
|
288
287
|
}
|
289
288
|
});
|
290
289
|
});
|
291
|
-
$dom.asyncifyEach('.quiz > p',
|
292
|
-
element.addEventListener('click',
|
290
|
+
$dom.asyncifyEach('.quiz > p', (element) => {
|
291
|
+
element.addEventListener('click', () => {
|
293
292
|
element.parentNode.toggleClass('show');
|
294
293
|
});
|
295
294
|
});
|
296
|
-
$dom.asyncifyEach('.quiz > p:first-child',
|
295
|
+
$dom.asyncifyEach('.quiz > p:first-child', (element) => {
|
297
296
|
const quiz = element.parentNode;
|
298
297
|
let type = 'choice';
|
299
298
|
if (quiz.hasClass('true') || quiz.hasClass('false')) {
|
@@ -310,13 +309,13 @@ const postBeauty = function () {
|
|
310
309
|
}
|
311
310
|
element.attr('data-type', LOCAL.quiz[type]);
|
312
311
|
});
|
313
|
-
$dom.asyncifyEach('.quiz .mistake',
|
312
|
+
$dom.asyncifyEach('.quiz .mistake', (element) => {
|
314
313
|
element.attr('data-type', LOCAL.quiz.mistake);
|
315
314
|
});
|
316
|
-
$dom.each('div.tags a',
|
315
|
+
$dom.each('div.tags a', (element) => {
|
317
316
|
element.className = ['primary', 'success', 'info', 'warning', 'danger'][Math.floor(Math.random() * 5)];
|
318
317
|
});
|
319
|
-
$dom.asyncifyEach('.md div.player',
|
318
|
+
$dom.asyncifyEach('.md div.player', (element) => {
|
320
319
|
mediaPlayer(element, {
|
321
320
|
type: element.attr('data-type'),
|
322
321
|
mode: 'order',
|
@@ -347,9 +346,9 @@ const postBeauty = function () {
|
|
347
346
|
});
|
348
347
|
}
|
349
348
|
};
|
350
|
-
const tabFormat =
|
349
|
+
const tabFormat = () => {
|
351
350
|
let first_tab;
|
352
|
-
$dom.each('div.tab',
|
351
|
+
$dom.each('div.tab', (element) => {
|
353
352
|
if (element.attr('data-ready')) {
|
354
353
|
return;
|
355
354
|
}
|
@@ -362,7 +361,7 @@ const tabFormat = function () {
|
|
362
361
|
box.id = id;
|
363
362
|
box.innerHTML = '<div class="show-btn"></div>';
|
364
363
|
const showBtn = box.child('.show-btn');
|
365
|
-
showBtn.addEventListener('click',
|
364
|
+
showBtn.addEventListener('click', () => {
|
366
365
|
pageScroll(box);
|
367
366
|
});
|
368
367
|
element.parentNode.insertBefore(box, element);
|
@@ -385,9 +384,9 @@ const tabFormat = function () {
|
|
385
384
|
li.addClass('active');
|
386
385
|
element.addClass('active');
|
387
386
|
}
|
388
|
-
li.addEventListener('click',
|
387
|
+
li.addEventListener('click', (event) => {
|
389
388
|
const target = event.currentTarget;
|
390
|
-
box.find('.active').forEach(
|
389
|
+
box.find('.active').forEach((el) => {
|
391
390
|
el.removeClass('active');
|
392
391
|
});
|
393
392
|
element.addClass('active');
|
@@ -397,7 +396,7 @@ const tabFormat = function () {
|
|
397
396
|
element.attr('data-ready', String(true));
|
398
397
|
});
|
399
398
|
};
|
400
|
-
const loadComments =
|
399
|
+
const loadComments = () => {
|
401
400
|
const element = $dom('#comments');
|
402
401
|
if (!element) {
|
403
402
|
goToComment.display('none');
|
@@ -406,7 +405,7 @@ const loadComments = function () {
|
|
406
405
|
else {
|
407
406
|
goToComment.display('');
|
408
407
|
}
|
409
|
-
const io = new IntersectionObserver(
|
408
|
+
const io = new IntersectionObserver((entries, observer) => {
|
410
409
|
const entry = entries[0];
|
411
410
|
vendorCss('valine');
|
412
411
|
if (entry.isIntersecting || entry.intersectionRatio > 0) {
|
@@ -416,7 +415,7 @@ const loadComments = function () {
|
|
416
415
|
});
|
417
416
|
io.observe(element);
|
418
417
|
};
|
419
|
-
const algoliaSearch =
|
418
|
+
const algoliaSearch = (pjax) => {
|
420
419
|
if (CONFIG.search === null) {
|
421
420
|
return;
|
422
421
|
}
|
@@ -429,14 +428,14 @@ const algoliaSearch = function (pjax) {
|
|
429
428
|
const search = instantsearch({
|
430
429
|
indexName: CONFIG.search.indexName,
|
431
430
|
searchClient: algoliasearch(CONFIG.search.appID, CONFIG.search.apiKey),
|
432
|
-
searchFunction
|
431
|
+
searchFunction(helper) {
|
433
432
|
const searchInput = $dom('.search-input');
|
434
433
|
if (searchInput.value) {
|
435
434
|
helper.search();
|
436
435
|
}
|
437
436
|
}
|
438
437
|
});
|
439
|
-
search.on('render',
|
438
|
+
search.on('render', () => {
|
440
439
|
pjax.refresh($dom('#search-hits'));
|
441
440
|
});
|
442
441
|
search.addWidgets([
|
@@ -456,7 +455,7 @@ const algoliaSearch = function (pjax) {
|
|
456
455
|
instantsearch.widgets.stats({
|
457
456
|
container: '#search-stats',
|
458
457
|
templates: {
|
459
|
-
text
|
458
|
+
text(data) {
|
460
459
|
const stats = LOCAL.search.stats
|
461
460
|
.replace(/\$\{hits}/, data.nbHits)
|
462
461
|
.replace(/\$\{time}/, data.processingTimeMS);
|
@@ -467,11 +466,11 @@ const algoliaSearch = function (pjax) {
|
|
467
466
|
instantsearch.widgets.hits({
|
468
467
|
container: '#search-hits',
|
469
468
|
templates: {
|
470
|
-
item
|
469
|
+
item(data) {
|
471
470
|
const cats = data.categories ? '<span>' + data.categories.join('<i class="ic i-angle-right"></i>') + '</span>' : '';
|
472
471
|
return '<a href="' + CONFIG.root + data.path + '">' + cats + data._highlightResult.title.value + '</a>';
|
473
472
|
},
|
474
|
-
empty
|
473
|
+
empty(data) {
|
475
474
|
return '<div id="hits-empty">' +
|
476
475
|
LOCAL.search.empty.replace(/\$\{query}/, data.query) +
|
477
476
|
'</div>';
|
@@ -502,33 +501,33 @@ const algoliaSearch = function (pjax) {
|
|
502
501
|
})
|
503
502
|
]);
|
504
503
|
search.start();
|
505
|
-
$dom.each('.search',
|
506
|
-
element.addEventListener('click',
|
504
|
+
$dom.each('.search', (element) => {
|
505
|
+
element.addEventListener('click', () => {
|
507
506
|
document.body.style.overflow = 'hidden';
|
508
|
-
transition(siteSearch, 'shrinkIn',
|
507
|
+
transition(siteSearch, 'shrinkIn', () => {
|
509
508
|
$dom('.search-input').focus();
|
510
509
|
});
|
511
510
|
});
|
512
511
|
});
|
513
|
-
const onPopupClose =
|
512
|
+
const onPopupClose = () => {
|
514
513
|
document.body.style.overflow = '';
|
515
514
|
transition(siteSearch, 0);
|
516
515
|
};
|
517
|
-
siteSearch.addEventListener('click',
|
516
|
+
siteSearch.addEventListener('click', (event) => {
|
518
517
|
if (event.target === siteSearch) {
|
519
518
|
onPopupClose();
|
520
519
|
}
|
521
520
|
});
|
522
521
|
$dom('.close-btn').addEventListener('click', onPopupClose);
|
523
522
|
window.addEventListener('pjax:success', onPopupClose);
|
524
|
-
window.addEventListener('keyup',
|
523
|
+
window.addEventListener('keyup', (event) => {
|
525
524
|
if (event.key === 'Escape') {
|
526
525
|
onPopupClose();
|
527
526
|
}
|
528
527
|
});
|
529
528
|
};
|
530
|
-
const domInit =
|
531
|
-
$dom.each('.overview .menu > .item',
|
529
|
+
const domInit = () => {
|
530
|
+
$dom.each('.overview .menu > .item', (el) => {
|
532
531
|
siteNav.child('.menu').appendChild(el.cloneNode(true));
|
533
532
|
});
|
534
533
|
loadCat.addEventListener('click', Loader.vanish);
|
@@ -551,11 +550,11 @@ const domInit = function () {
|
|
551
550
|
showContents.addEventListener('click', sideBarToggleHandle);
|
552
551
|
if (typeof mediaPlayer !== 'undefined') {
|
553
552
|
mediaPlayer(toolPlayer);
|
554
|
-
$dom('main').addEventListener('click',
|
553
|
+
$dom('main').addEventListener('click', () => {
|
555
554
|
toolPlayer.player.mini();
|
556
555
|
});
|
557
556
|
}
|
558
|
-
const createIntersectionObserver =
|
557
|
+
const createIntersectionObserver = () => {
|
559
558
|
new IntersectionObserver(([entry]) => {
|
560
559
|
if (entry.isIntersecting) {
|
561
560
|
document.querySelectorAll('.parallax>use').forEach(i => {
|
@@ -595,10 +594,10 @@ const domInit = function () {
|
|
595
594
|
};
|
596
595
|
createIntersectionObserver();
|
597
596
|
};
|
598
|
-
const pjaxReload =
|
597
|
+
const pjaxReload = () => {
|
599
598
|
pagePosition();
|
600
599
|
if (sideBar.hasClass('on')) {
|
601
|
-
transition(sideBar, 0,
|
600
|
+
transition(sideBar, 0, () => {
|
602
601
|
sideBar.removeClass('on');
|
603
602
|
menuToggle.removeClass('close');
|
604
603
|
});
|
@@ -608,7 +607,7 @@ const pjaxReload = function () {
|
|
608
607
|
mainNode.appendChild(loadCat.lastChild.cloneNode(true));
|
609
608
|
pageScroll(0);
|
610
609
|
};
|
611
|
-
const siteRefresh =
|
610
|
+
const siteRefresh = (reload) => {
|
612
611
|
LOCAL_HASH = 0;
|
613
612
|
LOCAL_URL = window.location.href;
|
614
613
|
vendorCss('katex');
|
@@ -630,14 +629,14 @@ const siteRefresh = function (reload) {
|
|
630
629
|
toolPlayer.player.load(LOCAL.audio || CONFIG.audio || {});
|
631
630
|
}
|
632
631
|
Loader.hide();
|
633
|
-
setTimeout(
|
632
|
+
setTimeout(() => {
|
634
633
|
positionInit();
|
635
634
|
}, 500);
|
636
635
|
cardActive();
|
637
636
|
lazyload.observe();
|
638
637
|
isOutime();
|
639
638
|
};
|
640
|
-
const siteInit =
|
639
|
+
const siteInit = () => {
|
641
640
|
domInit();
|
642
641
|
pjax = new Pjax({
|
643
642
|
selectors: [
|
@@ -662,7 +661,7 @@ const siteInit = function () {
|
|
662
661
|
window.addEventListener('resize', resizeHandle);
|
663
662
|
window.addEventListener('pjax:send', pjaxReload);
|
664
663
|
window.addEventListener('pjax:success', siteRefresh);
|
665
|
-
window.addEventListener('beforeunload',
|
664
|
+
window.addEventListener('beforeunload', () => {
|
666
665
|
pagePosition();
|
667
666
|
});
|
668
667
|
siteRefresh(1);
|