/
pts.lazyload.js
70 lines (69 loc) · 2.62 KB
/
pts.lazyload.js
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
class ptsLazyLoad {
constructor( dataLazyLoadingJS, dataSettings ) {
this.dataLazyLoadingJS = dataLazyLoadingJS;
this.dataSettings = dataSettings;
}
lazyLoadingJS( type, area ) {
if (this.dataLazyLoadingJS['data'][type]['status'] === false) {
this.dataLazyLoadingJS['data'][type]['status'] = true;
area.append(this.dataLazyLoadingJS['data'][type]['html']);
}
}
loadAllDataScripts() {
let that = this;
$.each(this.dataLazyLoadingJS['data'], function (i, el) {
that.lazyLoadingJS(i, $(el.area));
});
}
showMessage() {
let that = this;
$.fancybox({
content: that.dataSettings.fancybox.content,
wrapCSS: that.dataSettings.fancybox.wrapCSS,
helpers: {
overlay : {closeClick: false}
},
beforeClose: function () {
that.cookieSet();
that.loadAllDataScripts();
}
});
}
isSearchSystemBotSigns() {
let uaList = [
'APIs-Google', 'Mediapartners-Google', 'AdsBot-Google-Mobile', 'AdsBot-Google', 'Googlebot', 'AdsBot-Google-Mobile-Apps',
'YandexBot', 'YandexMobileBot', 'YandexDirectDyn', 'YandexScreenshotBot', 'YandexImages', 'YandexVideo', 'YandexVideoParser',
'YandexMedia', 'YandexBlogs', 'YandexFavicons', 'YandexWebmaster', 'YandexPagechecker', 'YandexImageResizer', 'YandexAdNet',
'YandexDirect', 'YaDirectFetcher', 'YandexCalendar', 'YandexSitelinks', 'YandexMetrika', 'YandexNews', 'YandexCatalog',
'YandexMarket', 'YandexVertis', 'YandexForDomain', 'YandexSpravBot', 'YandexSearchShop', 'YandexMedianaBot', 'YandexOntoDB',
'YandexOntoDBAPI', 'YandexVerticals',
'Mail.RU_Bot',
'StackRambler',
'Yahoo',
'msnbot',
'bingbot',
'PixelTools', 'PixelBot'
];
let sBrowser = false, sUsrAg = navigator.userAgent;
for (let i = 0; i < uaList.length; i += 1) {
if (sUsrAg.indexOf(uaList[i]) > -1) {
sBrowser = true;
break;
}
}
return sBrowser;
}
cookieCheck() {
return $.cookie(this.dataSettings.cookie_name) !== undefined
}
cookieSet() {
$.cookie(this.dataSettings.cookie_name, true, {expires: 365, path: '/'});
}
simpleCheck( need_check ) {
if (+need_check === 1 && !this.cookieCheck() && !this.isSearchSystemBotSigns()) {
this.showMessage();
} else {
this.loadAllDataScripts();
}
}
}