PageSourceSearch

https://resource.15166.com/video/commonFooter/footer.js?time=1775012639

js 15166.com collected 2026-10-07 20:00:05 UTC 18,609 bytes, 323 lines download raw bytes

1var ZYFooter = {
2    gameComDes: '健康游戏忠告:抵制不良游戏   æ‹’绝盗版游戏   æ³¨æ„è‡ªæˆ‘保护   è°¨é˜²å—骗上当   é€‚度游戏益脑   æ²‰è¿·æ¸¸æˆä¼¤èº«   åˆç†å®‰æŽ’æ—¶é—´   äº«å—健康生活',
3    style: '.ZY-footer{overflow:hidden;padding:40px 0;min-width:1200px;font-size:0}.ZY-footer .f-wrap{margin:0 auto;width:1000px}.ZY-footer .f-a{font-family:"\5FAE\8F6F\96C5\9ED1",tahoma,sans-serif;font-size:13px;font-weight:400;font-style:normal;white-space:nowrap;text-decoration:none}.ZY-footer .f-a[href]{cursor:pointer}.ZY-footer .f-p,.ZY-footer .f-rich-text{margin:0;line-height:2.2}.ZY-footer .f-rich-text{font-size:13px}.ZY-footer .f-top{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-end;align-items:flex-end;-webkit-box-align:end;-webkit-box-pack:justify;-ms-flex-align:end;-ms-flex-pack:justify;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-justify-content:space-between;justify-content:space-between}.ZY-footer .f-top+.f-center:before{display:block;margin:18px 0 16px;height:1px;content:""}.ZY-footer .f-top .f-t-l{white-space:nowrap}.ZY-footer .f-top .f-t-l .f-item,.ZY-footer .f-top .f-t-l .f-line{display:inline-block;vertical-align:middle}.ZY-footer .f-top .f-t-l .f-line{margin:0 16px;width:1px;height:40px}.ZY-footer .f-top .f-t-r{margin-top:10px}.ZY-footer .f-top .f-t-r .f-a{text-decoration:underline}.ZY-footer .f-top .f-t-r .f-a+.f-a{margin-left:16px}.ZY-footer .f-center .f-list{overflow:hidden}.ZY-footer .f-center .f-list .f-a{display:inline-block;position:relative;margin-right:25px;vertical-align:middle}.ZY-footer .f-center .f-list .f-a:before{display:inline-block;position:absolute;top:50%;left:-13px;width:1px;height:18px;-webkit-transform:translateY(-50%);transform:translateY(-50%);content:""}.ZY-footer .f-center .f-list .f-a:first-child:before{display:none}.ZY-footer .f-center .f-list .f-a:last-child{margin-right:0}.ZY-footer .f-bottom .f-p:last-child{line-height:2.5}.ZY-footer .f-bottom .f-a+.f-a{margin-left:5px}.ZY-footer .f-bottom .f-a-img{display:inline-block;text-decoration:none}.ZY-footer .f-bottom .f-a-img+.f-a-img{margin-left:12px}.ZY-footer .f-bottom .f-a-img:hover{text-decoration:none}.ZY-footer .f-bottom .f-a-img img{display:inline-block;width:auto;height:20px;vertical-align:middle}.ZY-footer .f-bottom .f-a-img i{margin-left:4px;font-size:13px;font-style:normal;vertical-align:middle}.ZY-footer.dark{background-color:#000}.ZY-footer.dark .f-a{color:#fff}.ZY-footer.dark .f-a:before{background-color:#a1a1a1}.ZY-footer.dark .f-a[href]:hover{color:#0089bc}.ZY-footer.dark .f-rich-text{color:#fff}.ZY-footer.dark .f-rich-text a{text-decoration:none;color:#fff}.ZY-footer.dark .f-rich-text a[href]:hover{color:#0089bc}.ZY-footer.dark .f-top .f-t-l .f-line{background-color:rgba(66,78,102,.6)}.ZY-footer.dark .f-top .f-t-r .f-a{color:#0089bc}.ZY-footer.dark .f-top .f-t-r .f-a[href]:hover{color:#09ade8}.ZY-footer.dark .f-top+.f-center:before{background-color:rgba(83,97,128,.9)}.ZY-footer.dark .f-bottom .f-a-img{color:#fff}.ZY-footer.dark .f-bottom .f-a-img[href]:hover{color:#0089bc}.ZY-footer.light{background-color:#fff}.ZY-footer.light .f-a{color:#100f0f}.ZY-footer.light .f-a:before{background-color:#a1a1a1}.ZY-footer.light .f-a[href]:hover{color:#0089bc}.ZY-footer.light .f-rich-text{color:#100f0f}.ZY-footer.light .f-rich-text a{text-decoration:none;color:#100f0f}.ZY-footer.light .f-rich-text a[href]:hover{color:#0089bc}.ZY-footer.light .f-top .f-t-l .f-line{background-color:#e3e3e3}.ZY-footer.light .f-top .f-t-r .f-a{color:#0089bc}.ZY-footer.light .f-top .f-t-r .f-a[href]:hover{color:#00a8e5}.ZY-footer.light .f-top+.f-center:before{background-color:#cecece}.ZY-footer.light .f-bottom .f-a-img{color:#100f0f}.ZY-footer.light .f-bottom .f-a-img[href]:hover{color:#0089bc}.ZY-footer.f-mobile{padding:15px;min-width:0}.ZY-footer.f-mobile .f-wrap{width:auto}.ZY-footer.f-mobile .f-p{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;line-height:2;-webkit-align-items:center;align-items:center;-webkit-box-align:center;-webkit-box-pack:center;-ms-flex-align:center;-ms-flex-pack:center;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;
3-webkit-justify-content:center;justify-content:center}.ZY-footer.f-mobile .f-p.f-nav .f-a{text-decoration:underline}.ZY-footer.f-mobile .f-p .f-a{font-size:12px}.ZY-footer.f-mobile .f-p .f-a+.f-a{margin-left:5px}.ZY-footer.f-mobile .f-p .f-a-img{display:inline-block;font-size:12px;text-decoration:none}.ZY-footer.f-mobile .f-p .f-a-img+.f-a-img{margin-left:12px}.ZY-footer.f-mobile .f-p .f-a-img img{display:inline-block;width:auto;height:20px;vertical-align:middle}.ZY-footer.f-mobile .f-p .f-a-img i{font-style:normal;vertical-align:middle}.ZY-footer.f-mobile .f-rich-text{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;font-size:12px;line-height:2;text-align:center;-webkit-align-items:center;align-items:center;-webkit-box-align:center;-webkit-box-pack:center;-ms-flex-align:center;-ms-flex-pack:center;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-justify-content:center;justify-content:center}.ZY-footer.f-mobile.dark{background-color:#000}.ZY-footer.f-mobile.dark .f-p .f-a,.ZY-footer.f-mobile.dark .f-p .f-a-img,.ZY-footer.f-mobile.dark .f-rich-text,.ZY-footer.f-mobile.dark .f-rich-text a{color:#c6c6c6}.ZY-footer.f-mobile.light{background-color:#fff}.ZY-footer.f-mobile.light .f-p .f-a,.ZY-footer.f-mobile.light .f-p .f-a-img,.ZY-footer.f-mobile.light .f-rich-text,.ZY-footer.f-mobile.light .f-rich-text a{color:#c9c9c9}.ZY-age{position:absolute;z-index:1}.ZY-age img{max-width:200px}.ZY-footer.f-mobile .f-logo {margin-top: 12px;margin-bottom: 18px;}.ZY-footer.f-mobile .f-a .f-img {width: 120px;}', // 样式代码
4    data: {
5        copyrightData: '', // 版权信息
6        style: 'dark', // 风格['dark','light']
7        wrapId: 'ZY_footer', // 容器Id
8        source: '', // 数据源
9        path: '', // 数据路径
10        device: '', // pc/mobile
11    },
12    setHtmlForPC: function (data) {
13        // 渲染pc结构
14        // 版块一:f-top
15        let topTpl = '';
16        // f-t-l
17        let topL = '';
18        if (data.hasOwnProperty('logo')) {
19            for (let i = 0; i < data.logo.length; i++) {
20                let item = data.logo[i];
21                let href = '';
22                if (item.href != '') {
23                    href = "target='_blank' href=" + item.href;
24                }
25                topL += "<a class='f-item' " + href + ">\
26                            <img src='" + this.deleteHttpOrHttps(item.src) + "' alt='" + item.txt + "'>\
27                        </a>";
28                if (i < data.logo.length - 1) {
29                    topL += "<div class='f-line'></div>";
30                }
31            }
32        }
33
34        // f-t-r
35        let topR = '';
36        if (data.hasOwnProperty('nav')) {
37            for (let i = 0; i < data.nav.length; i++) {
38                let item = data.nav[i];
39                let href = '';
40                if (item.href != '') {
41                    href = "target='_blank' href=" + item.href;
42                }
43                topR += "<a class='f-a' " + href + ">" + item.txt + "</a>";
44            }
45        }
46
47        topTpl = "<div class='f-top'>\
48                    <div class='f-t-l'>" + topL + "</div>\
49                    <nav class='f-t-r'>" + topR + "</nav>\
50                </div>";
51
52        // 版块二:f-center
53        let centerTpl = '';
54        let richInfo = '';
55        if (data.hasOwnProperty('contactPc') && data.contactPc !== '') {
56            richInfo = "<p class='f-rich-text'>" + data.contactPc + "</p>";
57        }
58        let cList = '';
59        if (data.hasOwnProperty('info')) {
60            for (let i = 0; i < data.info.length; i++) {
61                let item = data.info[i];
62                let href = '';
63                if (item.href != '') {
64                    href = "target='_blank' href=" + item.href;
65                }
66                cList += "<a class='f-a' " + href + ">" + item.txt + "</a>";
67            }
68        }
69
70        centerTpl = "<div class='f-center'>\
71                        <p class='f-p'>\
72                            <a class='f-a'>" + this.gameComDes + "</a>\
73                        </p>\
74                        " + richInfo + "\
75                        <p class='f-p f-list'>" + cList + "</p>\
76                    </div>"
77
78        // 版块三:f-bottom
79        let bottomTpl = '';
80        // f-b-l
81        let bottomL = "<a class='f-a'>Copyright© " + "</a>";
82        if (data.hasOwnProperty('logo')) {
83            for (let i = 0; i < data.logo.length; i++) {
84                let item = data.logo[i];
85                let href = '';
86                if (item.href != '') {
87                    href = "target='_blank' href=" + item.href;
88                }
89                bottomL += "<a class='f-a' " + href + ">" + item.txt + "</a>";
90            }
91        }
92
93        // f-b-r
94        let bottomR = '';
95        if (data.hasOwnProperty('icon')) {
96            for (let i = 0; i < data.icon.length; i++) {
97                let item = data.icon[i];
98                let href = '';
99                let txt = '';
100                if (item.href != '') {
101                    href = "target='_blank' href=" + item.href;
102                }
103                if (item.txt != '') {
104                    txt = "<i>" + item.txt + "</i>";
105                }
106                bottomR += "<a class='f-a-img' title='" + item.alt + "' " + href + ">\
107                                <img src='" + this.deleteHttpOrHttps(item.src) + "' height='20' alt='" + item.alt + "'>\
108                                " + txt + "\
109                            </a>";
110            }
111        }
112
113        bottomTpl = "<div class='f-bottom'>\
114                        <p class='f-p'>" + bottomL + "</p>\
115                        <p class='f-p'>" + bottomR + "</p>\
116                    </div>";
117
118        // 版权
119        let footerTpl = "<style>" + this.style + "</style><div class='ZY-footer " + this.data.style + "'>\
120            <div class='f-wrap'>" + topTpl + centerTpl + bottomTpl + "</div>\
121        </div>";
122
123        return footerTpl;
124    },
125    setHtmlForMobile: function (data) {
126        // 渲染mobile结构
127        let topTpl = '';
128        let topL = '';
129        if (data.hasOwnProperty('logo')) {
130            for (let i = 0; i < data.logo.length; i++) {
131                let item = data.logo[i];
132                let href = '';
133                if (item.href != '') {
134                    href = "target='_blank' href=" + item.href;
135                }
136                topL += "<a class='f-a' " + href + ">\
137                            <img class='f-img' src='" + this.deleteHttpOrHttps(item.src) + "' alt='" + item.txt + "'>\
138                        </a>";
139                if (i < data.logo.length - 1) {
140                    topL += "<div class='f-line'></div>";
141                }
142            }
143        }
144
145
146        // topTpl = "<div class='f-top'>\
147        //             <div class='f-t-l'>" + topL + "</div>\
148        //         </div>";
149        let nav = '';
150        if (data.hasOwnProperty('nav')) {
151            for (let i = 0; i < data.nav.length; i++) {
152                let item = data.nav[i];
153                if (item.hasOwnProperty('mobileNeedShow') && item.mobileNeedShow == '1') {
154                    let href = '';
155                    if (item.href != '') {
156                        href = "target='_blank' href=" + item.href;
157                    }
158                    nav += "<a class='f-a' " + href + ">" + item.txt + "</a>";
159                }
160            }
161        }
162
163        let info = '';
164        if (data.hasOwnProperty('info')) {
165            for (let i = 0; i < data.info.length; i++) {
166                let item = data.info[i];
167                if (item.hasOwnProperty('mobileNeedShow') && item.mobileNeedShow == '1') {
168                    let href = '';
169                    if (item.href != '') {
170                        href = "target='_blank' href=" + item.href;
171                    }
172                    info += "<a class='f-a' " + href + ">" + item.txt + "</a>";
173                }
174            }
175        }
176
177        let copyright = "<a class='f-a'>Copyright© " + "</a>";
178        if (data.hasOwnProperty('logo')) {
179            for (let i = 0; i < data.logo.length; i++) {
180                let item = data.logo[i];
181                let href = '';
182                if (item.href != '') {
183                    href = "target='_blank' href=" + item.href;
184                }
185                copyright += "<a class='f-a' " + href + ">" + item.txt + "</a>";
186            }
187        }
188
189        let richInfo = '';
190        if (data.hasOwnProperty('contactMobile') && data.contactMobile !== '') {
191            richInfo = "<p class='f-rich-text'>" + data.contactMobile + "</p>";
192        }
193
194        let iconList = '';
195        if (data.hasOwnProperty('icon')) {
196            for (let i = 0; i < data.icon.length; i++) {
197                let item = data.icon[i];
198                if (item.hasOwnProperty('mobileNeedShow') && item.mobileNeedShow == '1') {
199                    let href = '';
200                    let txt = '';
201                    if (item.href != '') {
202                        href = "target='_blank' href=" + item.href;
203                    }
204                    if (item.txt != '') {
205                        txt = "<i>" + item.txt + "</i>";
206                    }
207                    iconList += "<a class='f-a-img' title='" + item.alt + "' " + href + ">\
208                                    <img src='" + item.src + "' height='20' alt='" + item.alt + "'>\
209                                    " + txt + "\
210                                </a>";
211                }
212            }
213        }
214
215        // 版权
216        let footerTpl = "<style>" + this.style + "</style><div class='ZY-footer f-mobile " + this.data.style + "'>\
217                            <div class='f-wrap'>\
218                                <p class='f-p f-logo'>" + topL + "</p>\
219                                <p class='f-p f-nav'>" + nav + "</p>\
220                                <p class='f-p'>" + info + "</p>\
221                                <p class='f-p'>" + copyright + "</p>\
222                                " + richInfo + "\
223                                <p class='f-p'>" + iconList + "</p>\
224                            </div>\
225                        </div>";
226
227        return footerTpl;
228    },
229    setFooter: function () {
230        // 站点和游戏数据整合
231        let data = this.data.copyrightData;
232        if (!data) {
233            console.error('无效的域名,请核对后联系管理员添加该域名信息。');
234            return;
235        }
236
237        if (this.pcOrMobile() === 'mobile') {
238            document.getElementById(this.data.wrapId).innerHTML = this.setHtmlForMobile(data);
239        } else {
240            document.getElementById(this.data.wrapId).innerHTML = this.setHtmlForPC(data);
241        }
242    },
243    getData: function (key, tongji) {
244        let e = document.createElement("script");
245        // let src = this.data.source + "/video/commonFooter/" + key + ".js";
246        let src = this.data.source + this.data.path + key + ".js";
247        if (tongji) {
248            src += '?tj=' + tongji;
249        }
250        e.setAttribute("src", src);
251        let jsList = document.getElementsByTagName('script');
252        let loaded = false;
253        for (let i = 0; i < jsList.length; i++) {
254            if (this.deleteHttpOrHttps(jsList[i].src) === src) {
255                loaded = true;
256                continue;
257            }
258        }
259
260        // 判断是否已经加载过footDatajs
261        if (!loaded) {
262            document.body.appendChild(e);
263            e.onload = function () {
264                ZYFooter.data.copyrightData = _footerData;
265                ZYFooter.setFooter();
266            };
267            e.onerror = function () {
268                console.warn("配置的key值有误,获取版号信息错误。");
269            };
270        } else {
271            ZYFooter.data.copyrightData = _footerData;
272            ZYFooter.setFooter();
273        }
274    },
275    deleteHttpOrHttps: function (src) {
276        // 处理外链地址(目前只处理图片、js路径判断)
277        let reg = new RegExp(/^https?:/);
278        let s = src.replace(reg, "");
279        return s;
280    },
281    pcOrMobile: function () {
282        // 根据pc或是mobile返回对应的html结构
283        let userAgentInfo = navigator.userAgent.toLowerCase();
284        let isMobile = userAgentInfo.match(/(iphone|ipod|android|ios|ipad|backerry|webos|symbian|windows phone|phone|mobile|webos|incognito|webmate|bada|nokia|lg|ucweb|skyfire)/i);
285        let fixIpad = navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1; // 兼容:iPad-设置-Safar浏览器-请求桌面网站-所有网站(开启)
286
287        if (this.data.device === 'mobile') {
288            return 'mobile';
289        }
290        if (this.data.device === 'pc') {
291            return 'pc';
292        }
293
294        if (isMobile || fixIpad) {
295            return 'mobile';
296        } else {
297            return 'pc';
298        }
299    },
300    init: function (id) {
301        // 初始化
302        let ID = id || 'ZY_footer';
303
304        if (!document.getElementById(ID)) {
305            console.warn('需先初始化 ' + ID + ' 容器。');
306            return;
307        }
308
309        this.data.wrapId = ID;
310        this.data.style = document.getElementById(ID).getAttribute('data-color') || 'dark';
311        this.data.key = document.getElementById(ID).getAttribute('data-key') || '';
312        this.data.source = document.getElementById(ID).getAttribute('data-source') || '//resource.15166.com';
313        this.data.path = document.getElementById(ID).getAttribute('data-path') || '/video/commonFooter/';
314        this.data.tongji = document.getElementById(ID).getAttribute('data-tongji') || '';
315        this.data.device = document.getElementById(ID).getAttribute('data-type') || '';
316
317        if (this.data.key == '') {
318            console.warn('footer未设置key值,与管理员确认后填写。');
319            return;
320        }
321        ZYFooter.getData(this.data.key, this.data.tongji);
322    }
323};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.