forked from adlered/CSDNGreener
-
Notifications
You must be signed in to change notification settings - Fork 0
/
csdngreener_openuserjs.user.js
1698 lines (1642 loc) · 96.5 KB
/
csdngreener_openuserjs.user.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
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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
// ==UserScript==
// @author AdlerED
// @copyright 2020, adlered https://stackoverflow.wiki
// @icon https://csdnimg.cn/public/favicon.ico
// @homepageURL https://github.com/adlered/CSDNGreener
// @supportURL https://github.com/adlered/CSDNGreener/issues/new?assignees=adlered&labels=help+wanted&template=ISSUE_TEMPLATE.md&title=
// @contributionURL https://doc.stackoverflow.wiki/web/#/21?page_id=138
// @name 最强的老牌脚本CSDNGreener:CSDN广告完全过滤、人性化脚本优化
// @namespace https://github.com/adlered
// @version 4.1.9
// @description 全新4.0版本!拥有数项独家功能的最强CSDN脚本,不服比一比|无需登录CSDN,获得比会员更佳的体验|背景图自定义,模块化卡片,显示什么你决定|分辨率自适配,分屏不用滚动|超级预优化|独家原创文章免登录展开|独家推荐内容自由开关|独家免登录复制|独家防外链重定向|独家论坛未登录自动展开文章、评论|全面净化|沉浸阅读|净化剪贴板
// @connect www.csdn.net
// @include *://*.csdn.net/*
// @require https://lf26-cdn-tos.bytecdntp.com/cdn/expire-1-M/jquery-cookie/1.4.1/jquery.cookie.min.js
// @require https://lf26-cdn-tos.bytecdntp.com/cdn/expire-1-M/nprogress/0.2.0/nprogress.min.js
// @require https://lf26-cdn-tos.bytecdntp.com/cdn/expire-1-M/clipboard.js/2.0.10/clipboard.min.js
// @updateURL https://github.com/adlered/CSDNGreener/raw/master/csdngreener_openuserjs.user.js
// @grant GM_addStyle
// @grant GM_setValue
// @grant GM_getValue
// @license AGPL-3.0-or-later
// @antifeature ads CSDNGreener 脚本中存在可永久关闭的小广告,请放心安装!
// @note 23-05-25 4.1.9 再次修复免登录复制无法使用的问题
// @note 23-05-11 4.1.8 强杀变异型登录框弹出(不影响自己点击登录使用)
// @note 23-05-10 4.1.7 增强免登录复制功能
// @note 23-04-11 4.1.6 去广告更新
// @note 23-04-06 4.1.5 新增: 跳过 CSDN 的 link 页面
// @note 23-04-04 4.1.4 增加ads标识
// @note 23-03-30 4.1.3 移除统计代码,登录问题相关优化(只屏蔽一次)
// @note 23-02-03 4.1.2 修复了无法登录的问题(评论不登录无法加载暂无解决方案,我们在持续努力中)
// @note 22-05-30 4.1.1 功能修复,广告屏蔽
// @note 22-01-18 4.1.0 代码折叠适配
// @note 22-01-05 4.0.9 更新广告
// @note 21-12-12 4.0.8 屏蔽学生认证
// @note 21-10-21 4.0.7 屏蔽红包雨
// @note 21-09-24 4.0.6 修复登录弹窗无法彻底去除的问题
// @note 21-09-20 4.0.5 增加自定义背景功能
// @note 21-09-13 4.0.4 增加一个没有收钱的广告(在设置里,不影响体验)
// @note 21-09-01 4.0.3 增加用户使用情况统计模块
// @note 21-08-25 4.0.2 修复右侧置顶栏按钮消失的问题
// @note 21-08-21 4.0.1 去除右侧悬浮栏,优化脚本
// @note 21-08-20 4.0.0 全新4.0发布!UI美化,代码优化,兼容Firefox,更多排版模式
// @note 21-08-20 3.5.7 修复无法完整复制、保存csdn的网页会跳转首页的问题
// @note 21-08-19 3.5.6 自动隐藏底栏功能改为始终隐藏底栏
// @note 21-08-18 3.5.5 修复无法选择复制的问题
// @note 21-06-17 3.5.4 去除右侧红包悬浮窗
// @note 21-04-18 3.5.3 增加显示小店的设定
// @note 21-03-13 3.5.2 去主页广告,去文章页面推荐内容Title
// @note 21-03-01 3.5.1 修改文案
// @note 21-02-06 3.5.0 修复上传资源界面标签选择消失的问题
// @note 21-01-17 3.4.9 删除文章页和论坛广告,暂时停用右侧栏滚动功能(CSDN限制)
// @note 21-01-15 3.4.8 保存按钮优化,修复显示创作中心按钮功能失效的问题
// @note 21-01-15 3.4.7 改进脚本细节,增加广告屏蔽能力,修复绿化按钮错位的问题
// @note 20-12-25 3.4.6 主页部分嵌入式广告删除
// @note 20-12-18 3.4.5 修复绿化设定按钮排版不正确的问题
// @note 20-12-15 3.4.4 修复了某些子页显示不正常的问题
// @note 20-10-23 3.4.3 适应新版CSDN,去除主页和登录页广告,以及登录提示,并移除底部信息
// @note 20-10-20 3.4.2 删除右侧广告
// @note 20-09-26 3.4.1 修改排版设定,修复登录框弹出的问题
// @note 20-09-24 3.4.0 紧急修复由于CSDN前端样式修改导致设定开关丢失的问题
// @note 20-08-27 3.3.9 紧急修复由于CSDN前端样式修改导致脚本失效的问题
// @note 20-08-26 3.3.8 合法脚本提示
// @note 20-07-20 3.3.7 修复菜单栏在创作中心显示异常的问题
// @note 20-07-18 3.3.6 工具箱按钮优化
// @note 20-07-05 3.3.5 评论复制功能交互优化
// @note 20-07-04 3.3.4 修复右侧栏消失的问题
// @note 20-07-03 3.3.3 新增复制评论功能!删除顶部广告
// @note 20-06-28 3.3.2 提示修改
// @note 20-06-27 3.3.1 弹窗提示逻辑修改为仅提示一次。
// @note 20-06-27 3.3.0 网站标题新消息提醒去除
// @note 20-06-24 3.2.9 控制台文字可以点击了,修改自动版式描述语义
// @note 20-06-24 3.2.8 屏幕尺寸选择,控制台版式修改,若干问题修复
// @note 20-06-23 3.2.7 右侧栏滚动条显示方式优化
// @note 20-06-23 3.2.6 文章居中模式可选
// @note 20-06-22 3.2.5 右侧没有可显示内容时,文章居中
// @note 20-06-22 3.2.4 文章居中
// @note 20-06-22 3.2.3 右侧栏加入滚动条,脚本主页URL修改,下载页和主页广告去除
// @note 20-06-22 3.2.2 Dark Reader兼容模式,自动隐藏顶栏优化,热门文章和最新评论卡片布局调整
// @note 20-06-21 3.2.1 脚本迁移版本迭代
// @note 20-06-21 3.1.9 增加自动隐藏底栏功能
// @note 20-06-21 3.1.8 增加自动隐藏顶栏功能,修复选项窗口被点赞长条挡住的Bug,选项窗口布局修改
// @note 20-06-20 3.1.7 设置窗口大小固定,增加打赏入口
// @note 20-06-19 3.1.6 显示推荐内容按钮回归,新布局紧急修复
// @note 20-06-18 3.1.5 自定义功能更新
// @note 20-06-16 3.1.4 支持大部分功能模块化显示
// @note 20-06-14 3.1.3 绿化设定优化
// @note 20-06-14 3.1.2 ISSUE模板调整Support URL
// @note 20-06-14 3.1.1 增加搜博主文章模块
// @note 20-06-13 3.1.0 修复设置过期的问题
// @note 20-06-12 3.0.9 标题回滚
// @note 20-06-12 3.0.8 主页广告删除,绿化设置仅显示在文章页面,删除页脚,顶部优化,若干细节优化
// @note 20-06-11 3.0.7 增加官方QQ交流群,增加关闭强制白色主题功能
// @note 20-06-11 3.0.6 用户名片功能优化
// @note 20-06-11 3.0.5 优化加载速度
// @note 20-06-10 3.0.4 修复设置界面遮挡的问题,显示博主头像
// @note 20-06-09 3.0.3 默认设定修改
// @note 20-06-09 3.0.2 修复推荐内容按钮刷新不生效的问题,增加工具箱提示框
// @note 20-06-08 3.0.1 设置中心推出!增加浏览效果选项 && Green Book Icon Update
// @note 20-06-08 3.0.0 设置中心推出!增加浏览效果选项
// @note 20-06-07 2.4.2 设置解耦,下个版本搞配置中心
// @note 20-06-06 2.4.1 修复文章内容消失的问题
// @note 20-06-04 2.4.0 修复推荐按钮错位的问题
// @note 20-06-04 2.3.9 窄屏适配优化
// @note 20-06-04 2.3.8 黑夜模式出现问题,紧急回档到 2.3.6
// @note 20-06-03 2.3.7 感谢 @AlexLWT 增加黑暗模式
// @note 20-06-02 2.3.6 AdsByGoogle 删除
// @note 20-05-25 2.3.5 感谢 @RyanIPO 修复 Cannot read property 'replace' of undefined 报错的问题
// @note 20-05-24 2.3.4 修复免登录复制功能
// @note 20-05-22 2.3.3 Logo与背景同步
// @note 20-05-22 2.3.2 深度删除背景
// @note 20-05-20 2.3.1 通过require使用NProgress
// @note 20-05-20 2.3.0 显示推荐内容按钮样式内置,剔除CDN
// @note 20-05-17 2.2.9 进度条样式更新,时间延时优化
// @note 20-05-17 2.2.8 更新脚本描述,展开评论的所有回复,删除创作中心按钮,加载进度条
// @note 20-05-17 2.2.7 更新脚本描述
// @note 20-05-16 2.2.6 修复第一次点击显示推荐内容无反应的问题
// @note 20-05-16 2.2.5 删除抢沙发角标,修改显示推荐内容按钮样式
// @note 20-05-16 2.2.4 感谢来自GitHub的朋友“HeronZhang”的Issue建议,删除所有博客花里胡哨的背景,主页分类中广告清除,CSS样式控制宽度适配代码优化
// @note 20-05-16 2.2.3 感谢来自GitHub的朋友“RetiredWorld”的代码贡献,使用CSS来控制样式,而不是JS,增大灵活性。
// @note 20-05-13 2.2.2 屏蔽您的缩放不是100%的提示
// @note 20-04-29 2.2.1 感谢大家的支持,增加目录显示,自动判断是否存在目录调整页面宽度,屏蔽新增广告,欢迎大家体验并提出意见!
// @note 20-04-15 2.2.0 一些广告被其他插件屏蔽导致的异常无视之
// @note 20-03-30 2.1.9 干掉“记录你的创作历程”,干掉未登录情况下的角标提醒
// @note 20-03-13 2.1.8 窄屏适配加强
// @note 20-03-13 2.1.7 更新简介
// @note 20-03-12 2.1.6 宽度自适应(感谢来自GitHub的朋友LeonG7的建议)!修复剪贴板净化无效的问题。
// @note 20-03-04 2.1.5 适配AdGuard
// @note 20-02-27 2.1.4 优化免登录复制
// @note 20-02-25 2.1.3 免登录复制更新,现已可用
// @note 20-02-24 2.1.2 By Github@JalinWang 更改去除剪贴板劫持的方式,使得原文格式在复制时能够保留
// @note 20-02-22 2.1.1 紧急修复由于 CSDN 修改前端结构导致的文章错位
// @note 20-02-11 2.1.0 若干动画优化,视觉体验更流畅
// @note 20-02-06 2.0.9 武汉加油!修改推荐内容切换开关位置,减少违和感
// @note 20-01-17 2.0.8 去除右侧广告
// @note 20-01-17 2.0.7 感谢来自GitHub的朋友“gleans”的建议,去掉页头广告
// @note 19-12-12 2.0.6 感谢来自GitHub的朋友“yexuesong”的建议,将作者信息在文章顶部展示
// @note 19-10-30 2.0.5 美化隐藏按钮,增加点击动画
// @note 19-10-30 2.0.4 删除CSDN官方在主页推送的文章(大多是广告)
// @note 19-10-30 2.0.3 添加更多屏蔽脚本
// @note 19-10-30 2.0.0 祝自己生日快乐~完全重写CSDNGreener,统一使用JQuery,效率更高
// @note 19-10-27 1.5.2 删除分享海报提示&&感谢GitHub的朋友“CHN-STUDENT”的反馈,去除底部课程推荐
// @note 19-10-27 1.5.1 感谢来自GitHub的朋友“CHN-STUDENT”的细致复现反馈,去除了底部的课程推荐广告
// @note 19-10-04 1.5.0 移除了底部主题信息和打赏
// @note 19-09-10 1.4.9 感谢来自GitHub的朋友“programmerZe”的细致复现反馈,修复了评论区点击查看回复后,已经展开的评论会收起的问题
// @note 19-09-04 1.4.8 感谢来自GitHub的朋友“dwdcth”的细致复现反馈,现在查看原创文章不会无限弹登录窗口了,且加强了自动展开功能
// @note 19-08-20 1.4.7 感谢油叉用户“SupremeSir”的反馈,修复了右侧悬浮栏遮挡文章的问题
// @note 19-08-14 1.4.6 无语。刚更新的免登录复制,又改了。修复!
// @note 19-08-13 1.4.5 更新了独家功能:免登录复制
// @note 19-08-13 1.4.4 感谢来自GitHub的朋友“iamsunxing”的反馈,修复了顶部不贴边的问题
// @note 19-08-01 1.4.3 感谢油叉用户“ddddy”的反馈,去除了更多推广广告
// @note 19-07-30 1.4.2 感谢油叉用户“周义杰”的反馈,增加了防CSDN外链重定向的功能(CSDN臭流氓)
// @note 19-07-20 1.4.1 修复了推荐内容开关跨文章无效问题(忘了配置Cookie作用域)
// @note 19-07-19 1.4.0 1. 构架大更新 2. 感谢来自GitHub的朋友"lukemin"的反馈,加入了下方推荐内容是否隐藏开关(实用)
// @note 19-07-13 1.3.0 感谢来自GitHub的朋友“Holaplace”的反馈,修复了文章无法自动展开的问题(CSDN总改这个,令人头疼)
// @note 19-06-08 1.2.6 感谢油叉用户“DeskyAki”的反馈,修复了文章无法自动展开的问题
// @note 19-06-07 1.2.4 修复了登录后评论无法正常打开的问题
// @note 19-06-07 1.2.3 感谢油叉用户"永远的殿下"的反馈,在一上午的努力攻克下,终于实现了未登录展开评论的语句
// @note 19-06-05 1.2.0 修复了评论无法自动展开的BUG
// @note 19-06-04 1.1.9 修复了无法自动展开的BUG(自闭了)
// @note 19-06-04 1.1.6 CSDN太坏了,把“消息”按钮的Class设置成了“GitChat”,所以修复了“消息”按钮消失的问题
// @note 19-06-04 1.1.5 1. 优化了论坛体验 2.美化、优化代码结构
// @note 19-06-04 1.1.4 感谢来自GitHub的朋友“iamsunxing”的反馈,增加了论坛广告匹配规则
// @note 19-06-03 1.1.3 感谢来自GitHub的朋友“wangwei135”的反馈,去除了评论区上方的广告
// @note 19-05-27 1.1.2 感谢油叉用户“夏伟杰”的反馈,修复了富文本编辑器无法使用的问题
// @note 19-05-25 1.1.0 1. 修复了主页广告的问题 2. 论坛自动展开 3. 论坛广告消除
// @note 19-05-25 1.0.9 感谢油叉用户“渣渣不准说话”的反馈,修复了收藏按钮消失的问题
// @note 19-03-01 1.0.3 添加页面选择性过滤规则
// @note 19-03-01 1.0.2 增加了净化剪贴板功能
// @note 19-03-01 1.0.1 修复了排版问题, 优化了代码结构
// @note 19-02-26 1.0.0 初版发布
// ==/UserScript==
var version = "4.1.9";
var currentURL = window.location.href;
if (currentURL.indexOf("?") !== -1) {
currentURL = currentURL.substring(0, currentURL.indexOf("?"));
}
var list;
var windowTop = 0;
var startTimeMilli = Date.now();
var stopTimeMilli = 0;
// 配置控制类
class Config {
get(key, value) {
var cookie = $.cookie(key);
if (cookie == undefined) {
new Config().set(key, value);
console.debug("Renew key: " + key + " : " + value);
return value;
}
console.debug("Read key: " + key + " : " + cookie);
if (cookie === "true") { return true; }
if (cookie === "false") { return false; }
return cookie;
}
getS(key, value) {
var cookie = $.cookie(key);
if (cookie == undefined) {
new Config().set(key, value);
console.debug("Renew key: " + key + " : " + value);
return value;
}
console.debug("Read key: " + key + " : " + cookie);
return cookie;
}
set(setKey, setValue) {
$.cookie(setKey, setValue, {
path: '/',
expires: 365
});
console.debug("Key set: " + setKey + " : " + setValue);
}
listenButton(element, listenKey, trueAction, falseAction) {
$(element).click(function () {
let status = new Config().get(listenKey, true);
console.debug("Status: " + status);
if (status === "true" || status) {
console.debug("Key set: " + listenKey + " :: " + false);
new Config().set(listenKey, false);
} else {
console.debug("Key set: " + listenKey + " :: " + true);
new Config().set(listenKey, true);
}
});
}
listenButtonAndAction(element, listenKey, trueAction, falseAction) {
$(element).click(function () {
let status = new Config().get(listenKey, true);
console.debug("Status: " + status);
if (status === "true" || status) {
console.debug("Key set: " + listenKey + " :: " + false);
new Config().set(listenKey, false);
falseAction();
} else {
console.debug("Key set: " + listenKey + " :: " + true);
new Config().set(listenKey, true);
trueAction();
}
});
}
}
var config = new Config();
var progress = 0;
class Progress {
init() {
progress = 0;
NProgress.start();
$("#greenerProgress").text("绿化中...");
$(".toolbar-search").hide();
}
setProgress(p) {
progress = p;
$("#greenerProgress").text(progress + "%");
NProgress.set(progress / 100);
console.log(progress + "%");
}
incProgress(p) {
progress = progress + p;
progress = progress > 100 ? 100 : progress;
$("#greenerProgress").text(progress + "%");
NProgress.set(progress / 100);
console.log(progress + "%");
}
done() {
progress = 100;
NProgress.done();
$("#greenerProgress").html(protect_svg + ' CSDNGreener 正在守护您的浏览体验');
setTimeout(function() {
$("#greenerProgress").fadeOut(500);
setTimeout(function() {
$(".toolbar-search").fadeIn(500);
if (!isFirefox()) {
// 提示
let tipsCookie = config.get("showTip", true);
if (tipsCookie) {
showTips();
}
config.set("showTip", false);
}
}, 500);
}, 1500);
}
}
var progressor = new Progress();
// 自定义 CSS
// 进度条
$('head').append("<style>#nprogress{pointer-events:none}#nprogress .bar{background:#f44444;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px #f44444,0 0 5px #f44444;opacity:1;-webkit-transform:rotate(3deg) translate(0,-4px);-ms-transform:rotate(3deg) translate(0,-4px);transform:rotate(3deg) translate(0,-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border:solid 2px transparent;border-top-color:#f44444;border-left-color:#f44444;border-radius:50%;-webkit-animation:nprogress-spinner .4s linear infinite;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@-webkit-keyframes nprogress-spinner{0%{-webkit-transform:rotate(0)}100%{-webkit-transform:rotate(360deg)}}@keyframes nprogress-spinner{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}</style>");
// 设置窗口
$('head').append("<style>.black_overlay{top:0%;left:0%;width:100%;height:100%;background-color:#000;z-index:1001;-moz-opacity:0.8;opacity:.10;filter:alpha(opacity=88)}.black_overlay,.white_content{display:none;position:absolute}.white_content{z-index:9999!important;top:25%;left:25%;width:650px;height:60%;padding:20px;border:0px;background-color:rgba(255,255,255,0.9);z-index:1002;overflow:auto}</style>");
// 提示条
$('head').append("<style>.tripscon{padding:10px}</style>");
// 按钮(旧)
$('head').append("<style>#toggle-button{display:none}.button-label{position:relative;display:inline-block;width:82px;background-color:#ccc;border:1px solid #ccc;border-radius:30px;cursor:pointer}.circle{position:absolute;top:0;left:0;width:30px;height:30px;border-radius:50%;background-color:#fff}.button-label .text{line-height:30px;font-size:18px;-webkit-user-select:none;user-select:none}.on{color:#fff;display:none;text-indent:10px}.off{color:#fff;display:inline-block;text-indent:53px}.button-label .circle{left:0;transition:all .3s}#toggle-button:checked+label.button-label .circle{left:50px}#toggle-button:checked+label.button-label .on{display:inline-block}#toggle-button:checked+label.button-label .off{display:none}#toggle-button:checked+label.button-label{background-color:#78d690}</style>");
// 保存按钮
$('head').append("<style>.saveButton{background-color:#19a4ed;border:none;color:#fff;padding:5px 15px;text-align:center;text-decoration:none;display:inline-block;font-size:14px;cursor:pointer}</style>");
// Star 样式
$('head').append("<style>.giveMeOneStar:hover{color:#FF69B4;}</style>");
// 设置窗口文字效果
if (isFirefox()) {
$('head').append("<style>.configContainer label{font-size:15px}.configContainer p{font-size:15px}.giveMeOneStar{font-size:15px}.configContainer .title{font-size:20px}.configContainer .bold{font-weight:bold;margin-bottom:5px}</style>");
} else {
$('head').append("<style>.configContainer label{font-size:5px}.configContainer p{font-size:10px}.giveMeOneStar{font-size:15px}.configContainer .title{font-size:20px}.configContainer .bold{font-weight:bold;margin-bottom:5px}</style>");
}
// SVG
//var save_svg = '<svg t="1595082650173" class="icon" viewBox="0 0 1075 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2078" width="140" height="140"><path d="M753.763902 685.830244a48.952195 48.952195 0 0 1 49.152-48.702439c81.420488 0 141.162146-65.386146 141.162147-146.057366 0-43.507512-13.037268-82.419512-43.457561-109.243317a142.360976 142.360976 0 0 0-20.280195-14.935415 158.045659 158.045659 0 0 0-11.239025-6.243902l-2.747317-1.298732a155.847805 155.847805 0 0 0-9.191024-3.996097c-1.348683-0.549463-2.697366-0.999024-4.096-1.498537a152.35122 152.35122 0 0 0-8.491707-2.847219c-1.948098-0.599415-3.896195-0.999024-5.844293-1.498537-2.497561-0.599415-4.945171-1.24878-7.492683-1.748293-2.597463-0.499512-5.34478-0.899122-8.042146-1.24878-1.948098-0.249756-3.846244-0.599415-5.844293-0.79922a153.150439 153.150439 0 0 0-14.435903-0.749268c-1.498537 0-2.997073 0.199805-4.545561 0.249756a265.390829 265.390829 0 0 0-5.594536-24.526049c-0.499512-1.998049-1.298732-3.846244-1.898146-5.844292a267.438829 267.438829 0 0 0-5.944196-17.982439c-0.649366-1.798244-1.498537-3.496585-2.197853-5.29483a283.123512 283.123512 0 0 0-7.742439-17.732683L772.745366 269.736585a282.973659 282.973659 0 0 0-9.790439-17.832585C714.302439 171.582439 625.88878 124.878049 524.487805 124.878049c-101.400976 0-189.914537 46.654439-238.517073 126.976-3.496585 5.794341-6.693463 11.788488-9.790439 17.832585l-2.197854 4.096a283.523122 283.523122 0 0 0-7.742439 17.732683l-2.197854 5.244878c-2.247805 5.894244-4.145951 11.988293-5.994146 18.03239-0.549463 1.998049-1.298732 3.846244-1.848195 5.844293a266.739512 266.739512 0 0 0-5.594537 24.476098c-1.498537 0-2.997073-0.199805-4.545561-0.199805-4.89522 0-9.690537 0.299707-14.485853 0.749268-1.998049 0.199805-3.846244 0.499512-5.794342 0.79922-2.697366 0.349659-5.444683 0.699317-8.092097 1.24878-2.497561 0.499512-4.995122 1.148878-7.492683 1.748293-1.898146 0.499512-3.846244 0.899122-5.794342 1.498536a153.649951 153.649951 0 0 0-8.491707 2.797269l-4.096 1.498536a164.289561 164.289561 0 0 0-9.240976 3.996098l-2.697366 1.348683a145.557854 145.557854 0 0 0-31.469268 21.179317C117.884878 408.600976 104.897561 447.562927 104.897561 491.070439c0 80.67122 59.741659 146.057366 141.162146 146.057366a48.952195 48.952195 0 0 1 49.152 48.702439 48.952195 48.952195 0 0 1-49.152 48.702439c-135.717463 0-245.710049-108.993561-245.710048-243.462244 0-109.692878 73.228488-202.402341 173.830243-232.872585A375.832976 375.832976 0 0 1 524.487805 20.330146a375.882927 375.882927 0 0 1 350.307902 237.867708c100.601756 30.470244 173.830244 123.179707 173.830244 232.872585 0 134.468683-109.992585 243.462244-245.710049 243.462244a48.952195 48.952195 0 0 1-49.102048-48.702439z" p-id="2079"></path><path d="M487.973463 386.122927a49.102049 49.102049 0 0 1 72.928781 0.099902l147.356097 162.041756c6.993171 7.742439 11.48878 19.431024 12.537757 30.120586l0.249756 12.937366c0 19.480976-20.48 39.661268-39.211708 39.661268h-104.897561v262.993171a52.44878 52.44878 0 1 1-104.897561 0v-262.993171h-104.897561c-13.886439 0-39.211707-21.72878-39.211707-39.661268v-12.987317c0-12.487805 4.795317-21.27922 12.637659-29.920781l147.356097-162.291512z" p-id="2080"></path></svg>';
var star_svg_1 = '<svg t="1595083631685" class="icon" viewBox="0 0 1051 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2173" width="140" height="140"><path d="M525.837838 852.410811L199.264865 1001.859459l41.513513-357.016216L0 381.924324l351.481081-69.189189L525.837838 0l174.356757 312.735135L1051.675676 381.924324l-240.778379 262.918919 41.513514 357.016216z" fill="#FFD566" p-id="2174"></path></svg>';
var star_svg_2 = ' <svg t="1595083715312" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7848" width="140" height="140"><path d="M1014.001347 866.090236L810.23569 662.324579l145.497643-84.126599c11.377778-6.550842 17.92862-18.962963 16.894276-32.064647-1.034343-13.101684-9.309091-24.479461-21.376431-29.306397l-648.188552-258.585859c-12.756902-5.171717-27.23771-2.068687-36.891582 7.585186-9.653872 9.653872-12.756902 24.13468-7.585185 36.891582l258.585858 648.533333c4.826936 12.06734 16.204714 20.686869 29.306397 21.376431 13.101684 1.034343 25.513805-5.516498 32.064647-16.894276l84.126599-145.497643 203.765657 203.765657c6.550842 6.550842 15.17037 9.998653 24.13468 9.998653 8.96431 0 17.92862-3.447811 24.13468-9.998653l99.29697-99.29697c13.446465-13.446465 13.446465-35.167677 0-48.614141zM150.324579 102.055219c-13.446465-13.446465-35.167677-13.446465-48.26936 0-13.446465 13.446465-13.446465 35.167677 0 48.26936l76.196633 76.196633c6.550842 6.550842 15.515152 9.998653 24.13468 9.998653s17.583838-3.447811 24.13468-9.998653c13.446465-13.446465 13.446465-35.167677 0-48.26936L150.324579 102.055219zM176.183165 338.575084c0-18.962963-15.17037-34.133333-34.133333-34.133333H34.133333c-18.962963 0-34.133333 15.17037-34.133333 34.133333s15.17037 34.133333 34.133333 34.133334h107.571718c18.962963 0 34.478114-15.17037 34.478114-34.133334zM162.391919 444.422896l-76.196633 75.851851c-13.446465 13.446465-13.446465 35.167677 0 48.269361 6.550842 6.550842 15.515152 9.998653 24.13468 9.998653s17.583838-3.447811 24.13468-9.998653l76.196633-76.196633c13.446465-13.446465 13.446465-35.167677 0-48.269361-13.446465-13.101684-35.167677-13.101684-48.26936 0.344782zM338.575084 176.183165c18.962963 0 34.133333-15.17037 34.133334-34.133333V34.133333c0-18.962963-15.17037-34.133333-34.133334-34.133333s-34.133333 15.17037-34.133333 34.133333v107.571718c0 18.962963 15.17037 34.478114 34.133333 34.478114zM468.557576 220.659933c8.619529 0 17.583838-3.447811 24.13468-9.998654L568.888889 134.464646c13.446465-13.446465 13.446465-35.167677 0-48.26936-13.446465-13.446465-35.167677-13.446465-48.26936 0l-76.196633 76.196633c-13.446465 13.446465-13.446465 35.167677 0 48.26936 6.550842 6.550842 15.515152 9.998653 24.13468 9.998654z" fill="#2c2c2c" p-id="7849"></path></svg>';
var star_svg_3 = ' <svg t="1595083925438" class="icon" viewBox="0 0 1204 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4809" width="140" height="140"><path d="M1088.864348 618.13701a1555.009384 1555.009384 0 0 1-150.273004 167.137308c-52.881642 51.195212-107.931552 101.18583-163.643989 147.261521-33.849069 27.524955-60.229661 48.665566-76.190521 60.229661a162.981462 162.981462 0 0 1-191.891699 0c-15.539253-12.045932-42.160763-32.644476-76.190521-60.831957a2638.480754 2638.480754 0 0 1-164.366745-147.261521 1579.101249 1579.101249 0 0 1-150.273004-165.812257A468.104924 468.104924 0 0 1 0.152998 344.754579 315.543193 315.543193 0 0 1 109.048225 96.367457a399.443111 399.443111 0 0 1 493.883219-20.478084 398.660125 398.660125 0 0 1 493.883219 20.478084A315.482964 315.482964 0 0 1 1204.746215 343.309067a466.840101 466.840101 0 0 1-115.701178 274.647254z" fill="#FE4B83" p-id="4810"></path></svg>';
var star_svg_4 = ' <svg t="1595084089115" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="8008" width="140" height="140"><path d="M512 46.545455C256 46.545455 46.545455 256 46.545455 512s209.454545 465.454545 465.454545 465.454545 465.454545-209.454545 465.454545-465.454545S768 46.545455 512 46.545455z m0 837.818181c-204.8 0-372.363636-167.563636-372.363636-372.363636s167.563636-372.363636 372.363636-372.363636 372.363636 167.563636 372.363636 372.363636-167.563636 372.363636-372.363636 372.363636z" fill="#00C5C5" p-id="8009"></path><path d="M656.290909 586.472727c-79.127273 69.818182-209.454545 69.818182-288.581818 0-18.618182-13.963636-41.890909-13.963636-60.509091 4.654546-13.963636 13.963636-13.963636 41.890909 4.654545 60.509091 55.854545 51.2 125.672727 74.472727 200.145455 74.472727s144.290909-27.927273 200.145455-74.472727c18.618182-13.963636 18.618182-41.890909 4.654545-60.509091s-41.890909-18.618182-60.509091-4.654546zM358.4 460.8c27.927273 0 51.2-23.272727 51.2-51.2s-23.272727-55.854545-51.2-55.854545c-27.927273 0-51.2 23.272727-51.2 51.2s23.272727 55.854545 51.2 55.854545zM665.6 460.8c27.927273 0 51.2-23.272727 51.2-51.2s-23.272727-51.2-51.2-51.2-51.2 23.272727-51.2 51.2 23.272727 51.2 51.2 51.2z" fill="#00C5C5" p-id="8010"></path></svg>';
var star_svg = star_svg_1 + star_svg_2 + star_svg_3 + star_svg_4;
var donate_svg = '<svg t="1592982508258" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4207" width="32" height="32"><path d="M664.48 234.432a32 32 0 0 0-45.248-0.8l-76.256 73.6-73.344-73.216a32 32 0 1 0-45.248 45.312l72.384 72.256h-49.28a32 32 0 0 0 0 64h63.776v32h-63.776a32 32 0 0 0 0 64h63.776v65.664a32 32 0 1 0 64 0v-65.664h64.288a32 32 0 1 0 0-64h-64.288v-32h64.288a32 32 0 1 0 0-64h-50.368l74.464-71.872a32.032 32.032 0 0 0 0.832-45.28z m275.2 503.552a9017.568 9017.568 0 0 0-141.664-56.736 368.512 368.512 0 0 0 97.568-248.608c0-202.912-165.12-368-368.064-368s-368 165.088-368 368c0 16.224 1.024 32.352 3.072 47.968 2.304 17.504 18.496 29.664 35.904 27.584a32 32 0 0 0 27.584-35.904 304.512 304.512 0 0 1-2.56-39.648c0-167.616 136.384-304 304-304 167.648 0 304.064 136.384 304.064 304a300.544 300.544 0 0 1-96.128 221.472c-0.768 0.736-1.088 1.76-1.824 2.528-42.848-15.936-79.328-28.48-93.76-30.656-24.896-3.904-48.672 7.616-63.104 28.896-12.032 17.792-15.072 38.816-8.096 56.256 4.288 10.656 20.512 32.896 39.776 57.28-46.432-0.064-117.312-6.336-192.832-35.488-31.264-12.064-69.44-52.64-103.136-88.416-47.968-50.976-93.28-99.104-142.56-99.104-18.336 0-35.744 6.848-50.336 19.776-18.24 16.224-35.136 48.32-12 109.248 42.624 112.16 208.544 285.12 341.728 285.12h478.144a32 32 0 0 0 32-32v-160a31.84 31.84 0 0 0-19.776-29.568z m-44.16 157.6h-445.12l-1.024 32v-32c-97.6 0-247.072-152.128-281.92-243.872-10.112-26.656-6.72-37.408-5.344-38.624 4.128-3.648 6.528-3.648 7.84-3.648 21.632 0 64.608 45.632 95.968 78.944 40.224 42.752 81.856 86.944 126.656 104.256 85.216 32.896 164.896 39.808 216.736 39.808 41.376 0 67.584-4.352 68.672-4.544a32 32 0 0 0 19.136-52.16c-27.008-32.096-58.592-71.808-67.296-85.344 0.288-0.576 0.512-1.024 0.352-1.152 22.848 3.488 162.432 57.952 265.28 99.84v106.496z" p-id="4208"></path></svg>';
var set_svg = '<svg t="1592982970375" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="10112" width="48" height="48"><path d="M256 102.4h512l256 256-512 563.2L0 358.4z" fill="#26CD63" p-id="10113"></path><path d="M256 102.4l256 256H0zM768 102.4l256 256H512zM512 921.6l204.8-563.2H307.2z" fill="#14A345" p-id="10114"></path></svg>';
var save_svg = '<svg t="1629448588351" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7849" width="200" height="200"><path d="M512 0C229.2 0 0 229.2 0 512s229.2 512 512 512 512-229.2 512-512S794.8 0 512 0z m0 945.2C273.1 945.2 78.8 750.9 78.8 512S273.1 78.8 512 78.8 945.2 273.1 945.2 512 750.9 945.2 512 945.2z" p-id="7850" fill="#ffffff"></path><path d="M680.9 359.4L461 582.3 341.6 473.6c-16-14.6-41-13.4-55.6 2.6-14.7 16.1-13.5 41 2.6 55.6L436 666.1c7.5 6.8 17 10.2 26.5 10.2 10.2 0 20.3-3.9 28-11.7L737 414.7c15.3-15.5 15.1-40.4-0.4-55.7-15.5-15.2-40.5-15.1-55.7 0.4z" p-id="7851" fill="#ffffff"></path></svg>';
var settings_svg = '<svg t="1629433360462" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2870" width="200" height="200"><path d="M1006.438 17.548c-0.032 0-430.43-112.966-780.45 237.022-288.99 289.008-33.522 576.966-33.522 576.966s287.958 255.484 576.952-33.55C1119.436 448.012 1006.468 17.612 1006.438 17.548z" fill="#9ED36A" p-id="2871"></path><path d="M1006.438 17.548l-42.674-8.216c0.032 0.062 112.998 438.678-236.99 788.652-96.344 96.406-192.598 132.208-278.104 137.144 95.41 5.5 208-24.368 320.748-137.144C1119.436 448.012 1006.468 17.612 1006.438 17.548z" fill="#FFFFFF" opacity=".2" p-id="2872"></path><path d="M600.406 423.612c-8.308-8.34-21.836-8.34-30.148 0L6.4 987.426c-8.326 8.372-8.326 21.868 0 30.18 8.326 8.308 21.822 8.308 30.162 0L600.406 453.76c8.34-8.342 8.34-21.838 0-30.148z" fill="#8AC054" p-id="2873"></path></svg>';
var protect_svg = '<svg t="1629560538805" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3212" width="200" height="200"><path d="M800.3 205.1L534.8 116c-16-5.4-33.3-5.3-49.2 0.2l-264.5 92.3c-29.3 10-49 37.5-49.1 68.4l1.7 265.4c0.7 81 31.1 158.9 85.6 218.9 25 27.7 56.9 51.5 97.8 72.7l144 74.6c9 4.7 19.7 4.6 28.7-0.2L672.5 832c40.4-21.6 72.2-45.7 96.9-73.8 53.6-60.6 83-138.9 82.6-219.8l-1.7-265.6c-0.5-30.9-20.5-58.1-50-67.7z" fill="#07C160" p-id="3213"></path><path d="M474.1 652c-7.1 0-13.8-2.8-18.9-7.8l-151-151.1c-10.4-10.4-10.4-27.4 0-37.8s27.4-10.4 37.8 0l132.1 132.2 207.7-207.7c10.4-10.4 27.4-10.4 37.8 0 10.4 10.4 10.4 27.4 0 37.8L493 644.2c-5 5-11.8 7.8-18.9 7.8z" fill="#FFFFFF" p-id="3214"></path></svg>';
// jquery.showtips.js
(function(jQuery) {
jQuery.fn.showTips = function(options,elem){
var config = {
skin:"trips",
content:$(this).attr("tips")||"弹出类型的气泡提示!", //气泡提示内容里面可以是HTML,默认显示自定义的提示内容
width:"auto", //默认为auto,可以写具体尺寸如:200
alignTo:["right","center"], //箭头方向
color:["rgb(247, 206, 57)","#FFFEF4"], //这里是提示层的风格,第一个参数为提示边框颜色,第二个参数为提示背景颜色
type:"html", //显示内容类型
trigger:"click", //默认为点击显示,show为初始化就显示,hover为经过显示,focus焦点显示,mouse跟随鼠标显示隐藏
spacing:10, //默认为箭头距离对象的尺寸
customid:"", //自定义ID
isclose:false, //是否显示关闭按钮
success : null //成功后的回调函数
};
var opts = jQuery.extend(config, options);
return this.each(function(){
var that = jQuery(this),tipBox,tipId,selfH,selfW,conId,docW, spa = opts.spacing, skin=opts.skin;
var Mathrandom = Math.floor(Math.random() * 9999999);
var pmr = (opts.customid=="") ? Mathrandom :opts.customid.replace(/[#.]/, "");
var pointer=opts.alignTo.length===1 ? ''+opts.alignTo[0]+'' : ''+opts.alignTo[0]+'-'+opts.alignTo[1]+'';
if(typeof elem == 'string') {
if(elem =="show"){
jQuery('#tip'+pmr).show(); jQuery("#con"+pmr).html(opts.content);
showPosition(pointer,jQuery('#tip'+pmr));
};
if(elem =="hide"){jQuery('#tip'+pmr).hide()};
};
if(typeof elem == '' || typeof elem == undefined){return true};
if(jQuery('#tip'+pmr).length==1){return false;}
tipBox=jQuery('<div class="'+skin+' '+skin+'-'+pointer+'" id="tip'+pmr+'"><i></i><em></em><div class="'+skin+'con" id="con'+pmr+'"></div></div>').appendTo(document.body);
tipId = jQuery("#tip"+pmr);
conId = jQuery("#con"+pmr);
var edgecolor='border-'+opts.alignTo[0]+'-color', tfi=tipId.find("i"), tfem=tipId.find("em"), tfiem=tipId.find("i,em");
tipId.css({'position':'absolute',border:'1px solid','border-color':opts.color[0],'background-color':opts.color[1]});
if(opts.alignTo[1]=='center'){ var offpos=50,percen="%"; }else{ var offpos=5,percen="px"; };
tfiem.css({width:0,height:0,content:'','position':'absolute'})
tfi.css({border:'8px solid transparent','z-index':5});
tfem.css({border:'7px solid transparent','z-index':10});
switch (pointer) {
case 'top-center':
case 'bottom-center':
case 'top-left':
case 'bottom-left':
var poi="left";
if(pointer=='top-center' || pointer=='bottom-center'){
tfi.css({"margin-left":"-8px"});
tfem.css({"margin-left":"-7px"});
}
break;
case 'left-center':
case 'right-center':
case 'left-top':
case 'right-top':
var poi="top";
if(pointer=='left-center' || pointer=='right-center'){
tfi.css({"margin-top":"-8px"});
tfem.css({"margin-top":"-7px"});
}
break;
default:
var poi="right";
break;
};
if(pointer=='follow'){
tfi.css({'border-bottom-color':opts.color[0],left:''+offpos+percen+'',bottom:'100%'});
tfem.css({'border-bottom-color':opts.color[1],left:''+(offpos+(opts.alignTo[1]=='center'?0:1))+percen+'',bottom:'100%'});
}else{
tfi.css(edgecolor,opts.color[0]).css(poi,''+offpos+percen+'');
tfem.css(edgecolor,opts.color[1]).css(poi,''+(offpos+(opts.alignTo[1]=='center'?0:1))+percen+'');
tfiem.css(opts.alignTo[0],'100%');
};
switch (opts.type) {
case 'html':conId.html(opts.content); break;
case 'id' :
var tempid=jQuery(opts.content) ,wrap = document.createElement("div");
if(tempid.css("display") == "none"){ tempid.css({display:"block"}); }
conId.append(tempid);
break;
};
if(opts.isclose){
jQuery('<span class="'+skin+'close" id="close'+pmr+'">×</span>').appendTo(tipId);
tipId.find("#close"+pmr+"").on("click",function(){tipId.hide();});
}
if(typeof opts.width === 'string'){
docW = parseInt(document.body.clientWidth*(opts.width.replace('%','')/100));
(typeof opts.width == 'auto' || typeof opts.width == '') ? tipBox.css({width:'auto'}) : tipBox.css({width:docW});
tipBox.height();
}else{
tipBox.width(opts.width).height();
}
function showPosition(pointer,cell){
var selfH = that.outerHeight(true), selfW = that.outerWidth(true);
var post=that.offset().top, posl=that.offset().left;
var tipCell=(cell=="" || cell==undefined) ? tipId : cell;
var tipH=tipCell.outerHeight(true), tipW=tipCell.outerWidth(true);
switch (pointer) {
case 'top-left': tipCell.css({top:post-tipH-spa,left:posl}); break;
case 'top-center': tipCell.css({top:post-tipH-spa,left:posl-(tipW/2)+(selfW/2)}); break;
case 'top-right': tipCell.css({top:post-tipH-spa,left:posl-(tipW-selfW)}); break;
case 'bottom-left': tipCell.css({top:post+selfH+spa,left:posl}); break;
case 'bottom-center': tipCell.css({top:post+selfH+spa,left:posl-(tipW/2)+(selfW/2)}); break;
case 'bottom-right': tipCell.css({top:post+selfH+spa,left:posl-(tipW-selfW)}); break;
case 'left-top': tipCell.css({top:post,left:posl-tipW-spa}); break;
case 'left-center': tipCell.css({top:post-(tipH/2)+(selfH/2),left:posl-tipW-spa}); break;
case 'right-top': tipCell.css({top:post,left:posl+selfW+spa}); break;
case 'right-center': tipCell.css({top:post-(tipH/2)+(selfH/2),left:posl+selfW+spa}); break;
case 'follow': that.mousemove(function(e) { tipCell.css({top:e.pageY + 30,left:e.pageX - 6}); }); break;
};
}
tipBox.hide();
switch (opts.trigger){
case 'show':showPosition(pointer);tipBox.show();break;
case 'click':that.click(function(){showPosition(pointer);tipBox.show();});break;
case 'hover':that.hover(function(){showPosition(pointer);tipBox.show(); tipBox.on("mouseover",function(){jQuery(this).show()}).on("mouseout",function(){jQuery(this).hide()})},function(){tipBox.hide();});break;
case 'focus':that.focus(function(){showPosition(pointer);tipBox.show();}); that.blur(function(){tipBox.hide();});break;
case 'mouse':that.hover(function(){showPosition(pointer);tipBox.show();},function(){tipBox.hide();});break;
};
setTimeout(function(){opts.success && opts.success();}, 1);
});
}
})(jQuery);
(function () {
'use strict';
l("CSDNGreener V" + version);
if (isFirefox()) {
console.log("您正在使用火狐浏览器,将使用兼容模式运行 CSDNGreener。");
}
progressor.init();
// 绿化设定按钮点击事件
let jss = "";
jss += "<script>function showConfig() {";
jss += "$(window).scrollTop(0);";
jss += "$('.white_content').fadeIn(500);";
jss += "$('body').css('overflow', 'hidden');";
jss += "$('body').css('filter','blur(3px)');";
jss += "$('body').css('pointer-events','none')";
jss += "}</script>";
$("body").append(jss);
// 保存按钮点击事件
let saveJss = "";
saveJss += "<script>function saveAndReload() {";
saveJss += "$('#configContent').fadeOut(200);";
saveJss += "setTimeout(function() {location.reload();},200)";
saveJss += "}</script>";
$("body").append(saveJss);
setTimeout(function() {
var blockURL = currentURL.split("/").length;
var main = /(www\.csdn\.net\/)$/;
var mainNav = /nav/;
var article = /article/;
var bbs = /bbs\.csdn\.net/;
var blog = /blog\.csdn\.net/;
var blog2 = /\/article\/list\//;
var download = /download\.csdn\.net/;
var login = /passport\.csdn\.net/;
var zone = /me\.csdn\.net/;
var other = /(www\.csdn\.net\/)/;
var mp = /mp\.csdn\.net/;
var article_month = /article\/month/;
var link = /link\.csdn\.net/;
// 数组初始化
list = [];
// 头部分
// APP
// put(".app-app");
// VIP
put(".vip-caise");
// 记录你的成长历程(记个毛)
put("#writeGuide");
// 新通知小圆点(未登录才消掉)
if ($(".userinfo a").text() === '登录/注册') {
put("#msg-circle");
}
// 顶部谷歌广告
put(".adsbygoogle");
// 悬浮在顶栏按钮上出现的二维码
put(".appControl");
// 顶部广告
put(".advert-bg");
if (main.test(currentURL) || mainNav.test(currentURL)) {
l("正在优化主页体验...");
// 常规
// 头部广告
put(".banner-ad-box");
// 嵌入广告
put("#kp_box_211");
// 右侧广告
put(".slide-outer");
// 右侧详情
put(".persion_article");
// 右侧推荐
$(".feed_company").parent().remove();
// 广告轮播
put(".el-carousel__container");
// 顶部横幅
put(".toolbar-advert");
// 顶栏VIP选项
$('.toolbar-subMenu-box').find("[href='https://mall.csdn.net/vip']").parent().remove();
// CSDN工具广告
put("#floor-ad_64");
clean(10);
// common(5, 10);
// 博客及主页优化
common(9, 10);
loop(3);
loop(1);
} else if ((blog.test(currentURL) && blockURL === 4) || blog2.test(currentURL)) {
l("正在优化个人博客主页体验...");
// 常规
// 头部广告
put(".banner-ad-box");
// 右侧广告
put(".slide-outer");
// 右侧详情
put(".persion_article");
// 左侧广告
put(".mb8");
put("#kp_box_503");
put("#kp_box_214");
clean(10);
// common(5, 10);
loop(3);
loop(1);
} else if (article.test(currentURL) && !mp.test(currentURL) && !article_month.test(currentURL)) {
l("正在优化阅读体验...");
// 绿化设定
if (isFirefox()) {
setTimeout(function() {
$(".toolbar-container-middle").prepend("<div id='greenerProgress' style='text-align:right'></div>");
let htmlOf0 = '<div class="toolbar-btn csdn-toolbar-fl"><a id="greenerSettings" title="点击打开 CSDNGreener 绿化设定" href="javascript:void(0)" onclick="showConfig();">' + settings_svg + '</a></div>';
$(".toolbar-btns").prepend(htmlOf0);
if (isFirefox()) {
// 提示
let tipsCookie = config.get("showTip", true);
if (tipsCookie) {
showTips();
}
config.set("showTip", false);
}
}, 3000);
} else {
$(".toolbar-container-middle").prepend("<div id='greenerProgress' style='text-align:right'></div>");
let htmlOf0 = '<div class="toolbar-btn csdn-toolbar-fl"><a id="greenerSettings" title="点击打开 CSDNGreener 绿化设定" href="javascript:void(0)" onclick="showConfig();">' + settings_svg + '</a></div>';
$(".toolbar-btns").prepend(htmlOf0);
}
// 常规
// 右侧广告,放到第一个清除
// put(".recommend-right");
put("#addAdBox");
// put(".aside-box.kind_person.d-flex.flex-column");
put(".recommend-top-adbox");
// put(".recommend-list-box.d-flex.flex-column.aside-box");
// 左侧广告
// put("#container");
// 快来写博客吧
put(".blog_tip_box");
// 推荐关注用户
put(".blog-expert-recommend-box");
// 右下角VIP
put(".meau-gotop-box");
// 广告
put(".mediav_ad");
put(".pulllog-box");
put(".recommend-ad-box");
put(".box-shadow");
put(".type_hot_word");
put(".fourth_column");
// 高分辨率时右侧文章推荐
// put(".right-item");
// 广告
put("#asideFooter");
put("#ad-div");
put("#479");
put("#480");
// 打赏
put(".postTime");
// 课程推荐
put(".t0");
// 分享海报
put(".shareSuggest");
// 底部主题
put(".template-box");
// 评论区广告
put("div#dmp_ad_58");
// 打赏
put(".reward-user-box");
// 右侧打赏按钮
put(".to-reward");
// 推荐内容广告
put(".recommend-recommend-box");
// 右侧广告
put(".indexSuperise");
// 抢沙发角标
put(".comment-sofa-flag");
// 页jio
put(".bottom-pub-footer");
// 登录查看未读消息
put(".toolbar-notice-bubble");
// 右侧广告
put(".recommend-top-adbox");
// 右侧四个广告
put(".programmer1Box");
put(".programmer2Box");
put(".programmer3Box");
put(".programmer4Box");
// 点赞气泡
put(".triplet-prompt");
// 顶部横幅
put(".toolbar-advert");
// 底部信息
put(".blog-footer-bottom");
// 右侧栏广告
put("#6527");
put("#recommendAdBox");
// 推荐内容Title
put(".recommend-tit-mod");
// 红包提醒
put(".csdn-redpack-lottery-btn-box");
// 学生认证
put(".csdn-highschool-window");
// 右侧悬浮栏除置顶以外的按钮
put(".option-box[data-type='guide'],.option-box[data-type='cs'],.csdn-common-logo-advert");
clean(10);
setTimeout(function() {
// 展开评论的所有回复
$('.btn-read-reply').click();
}, 1500);
// 主动加入右侧栏
if ($(".recommend-right").length === 0) {
$("#mainBox").after('<div class="recommend-right align-items-stretch clearfix" id="rightAside"><aside class="recommend-right_aside"><div id="recommend-right" style="height: 100%; position: fixed; top: 52px; overflow: scroll;"></div></aside></div>');
}
// 上栏按钮删除
$(".toolbar-menus > li > a:contains('专栏课程')").parent().remove();
$(".toolbar-menus > li > a:contains('插件')").parent().remove();
$(".toolbar-menus > li > a:contains('认证')").parent().remove();
// 修复无法选择复制
$("code").css("user-select","auto");
$("#content_views").css("user-select","auto");
$("pre").css("user-select","auto");7
// 图片混文字时,无法完整复制,图片不会被复制下来 https://github.com/adlered/CSDNGreener/issues/87
//let el = $("main .blog-content-box")[0];
//let elClone = el.cloneNode(true);
//el.parentNode.replaceChild(elClone, el);
// 保存csdn的网页再次打开会自动跳转到首页 https://github.com/adlered/CSDNGreener/issues/97
$("[onerror]").remove();
// CSDN重定向外链不能在新的窗口跳转 https://github.com/adlered/CSDNGreener/issues/80
$("#article_content a[href]").attr("target", "_blank");
// 搜索框优化
//$("#toolbar-search-input").css("width", "calc(100% - 400px)");
// 取消代码折叠
$(".look-more-preCode").click();
// 询问推荐是否有意义的问卷调查
$("#recommendNps").remove();
// 绿化设置
common(6, 1);
// 屏幕适配
common(4, 1);
// 评论
common(1, 30);
// 其它
common(2, 20);
// 顶部显示作者信息
common(8, 1);
// 博客及主页优化
common(9, 10);
// 循环线程开始
loop(2);
loop(3);
} else if (bbs.test(currentURL)) {
l("正在优化论坛体验...");
// 常规
// 评论嵌入小广告
put(".post_recommend");
// 底部推荐
put("#post_feed_wrap");
// 底部相关文章里面的广告
put(".bbs_feed_ad_box");
put(".recommend-ad-box");
// 底部相关文字里面的热词提示
put(".type_hot_word");
// 底部蓝色flex属性的广告栏+登录注册框
put(".pulllog-box");
// 猜你喜欢
put(".personalized-recommend-box");
// 发帖减半提示
put(".totast-box");
// 顶部广告
put(".recommend-right");
// 顶部广告
put(".ad_top");
// 右侧广告
put(".ad_1");
clean(10);
// 展开
common(3, 50);
// common(5, 10);
loop(3);
} else if (download.test(currentURL)) {
l("正在优化下载页体验...");
// 常规
put(".fixed_dl");
put("indexSuperise");
// 右侧推荐
put(".content_recom");
clean(10);
// common(5, 10);
loop(3);
} else if (login.test(currentURL)) {
l("正在优化登录页体验...");
// 常规
// 登录界面大图广告
put(".main-tu");
clean(10);
// common(5, 10);
loop(3);
} else if (zone.test(currentURL)) {
l("正在优化个人空间体验...");
// 常规
clean(10);
common(7, 10);
// common(5, 10);
loop(3);
} else if (link.test(currentURL)) {
// 跳过 CSDN 的 link 页面
var url = new URL(window.location.href)
var target = url.searchParams.get('target')
window.location.href = target
} else {
l("哦豁,好偏门的页面,我来试着优化一下哦...");
// 常规
// 展开全文
$('.readmore_btn').click();
// *** index ***
// 头部广告
put(".banner-ad-box");
// 嵌入广告
put("#kp_box_211");
// 右侧广告
put(".slide-outer");
// 右侧详情
put(".persion_article");
// 右侧推荐
$(".feed_company").parent().remove();
// *** article ***
// 常规
// 右侧广告,放到第一个清除
put("#addAdBox");
put(".recommend-top-adbox");
// 快来写博客吧
put(".blog_tip_box");
// 推荐关注用户
put(".blog-expert-recommend-box");
// 右下角VIP
put(".meau-gotop-box");
// 广告
put(".mediav_ad");
put(".pulllog-box");
put(".recommend-ad-box");
//put(".box-shadow"); 某些页面异常,例如cloud.csdn.net
put(".type_hot_word");
put(".fourth_column");
// cloud.csdn.net 头部广告
put("#kp_box_118");
// 广告
put("#asideFooter");
put("#ad-div");
put("#479");
put("#480");
// 打赏
put(".postTime");
// 课程推荐
put(".t0");
// 分享海报
put(".shareSuggest");
// 底部主题
put(".template-box");
// 评论区广告
put("div#dmp_ad_58");
// 打赏
put(".reward-user-box");
// 右侧打赏按钮
put(".to-reward");
// 推荐内容广告
put(".recommend-recommend-box");
// 右侧广告
put(".indexSuperise");
// 抢沙发角标
put(".comment-sofa-flag");
// 页jio
put(".bottom-pub-footer");
// 登录查看未读消息
put(".toolbar-notice-bubble");
// 右侧广告
put(".recommend-top-adbox");
// 学院弹出广告
$(".fouce_close_btn").click();
// 其它
// 头部广告
put(".banner-ad-box");
// 右侧广告
put(".slide-outer");
// 右侧详情
put(".persion_article");
// 左侧广告
put("#kp_box_503");
put("#kp_box_214");
// *** bbs ***
// 评论嵌入小广告
put(".post_recommend");
// 底部推荐
put("#post_feed_wrap");
// 底部相关文章里面的广告
put(".bbs_feed_ad_box");
put(".recommend-ad-box");
// 底部相关文字里面的热词提示
put(".type_hot_word");
// 底部蓝色flex属性的广告栏+登录注册框
put(".pulllog-box");
// 猜你喜欢
put(".personalized-recommend-box");
// 发帖减半提示
put(".totast-box");
// 顶部广告
put(".recommend-right");
// 顶部广告
put(".ad_top");
// *** download ***
put(".fixed_dl");
put("indexSuperise");
// 右侧推荐
put(".content_recom");
clean(10);
}
setTimeout(function() {
progressor.done();
}, 0);
stopTimeMilli = Date.now();
l("优化完毕! 耗时 " + (stopTimeMilli - startTimeMilli) + "ms");
}, 0);
})();
function l(log) {
console.log("[CSDNGreener] " + log);
}
function e(error) {
console.error("[CSDNGreener] " + error);
}
function clear() {
list = [];
}
function put(tag) {
list.push(tag);
}
function clean(times) {
var loop = setInterval(function () {
--times;
if (times <= 0) {
clearInterval(loop);
}
for (var k = 0; k < list.length; k++) {
$(list[k]).remove();
}
}, 100);
progressor.incProgress(10);
}
var deletedLogin = false;
function loop(num) {
setInterval(function () {
if (num === 1) {
// 主页中间的广告
$(".J_adv").remove();
// 主页有新的内容横条
$(".feed-fix-box").remove();
// 主页广告 iframe
if (currentURL == "https://www.csdn.net/") {
$("iframe").remove();
}
// 删除 CSDN 官方在主页的文章(大多是广告)
$("li.clearfix").each(function(index, ele) {
var banned = /csdn<\/a>/;
var aMark = $(ele).find(".name").html();
if (banned.test(aMark)) {
$(ele).remove();
}
});
// 主页广告
$("li").each(function(){
let self = $(this);
let dataType = self.attr('data-type');
if (dataType === 'ad') {
self.remove();
}
});
// 主页广告
$("li > div > div > h2 > a[href*='https://edu.csdn.net']").parent().parent().parent().parent().remove();
$("li > div > div > h2 > a[href*='https://marketing.csdn.net']").parent().parent().parent().parent().remove();
// 官方脚本横幅
$(".toolbar-advert").remove();
} else if (num === 2) {
// 评论查看更多展开监听
$("div.comment-list-box").css("max-height", "none");
// 屏蔽您的缩放不是100%的提示
$('.leftPop').remove();
// 官方脚本横幅
$(".toolbar-advert").remove();
} else if (num == 3) {
// 循环删除登录提示框
if ($($(".passport-login-container")[0]).length == 1 && deletedLogin == false) {
let passInterval = setInterval(function() {
$('.passport-login-container').hide();
console.log("hide");
}, 10);
setTimeout(function() {
clearInterval(passInterval);
setTimeout(function() {
$("#passportbox").find("span").click();
}, 500)
}, 5000);
deletedLogin = true;
}
// 红包雨
$("#csdn-redpack").remove();
}
}, 500);
}
function common(num, times) {
var loop = setInterval(function () {
--times;
if (times <= 0) {
clearInterval(loop);
}
if (num === 1) {
// 查看更多
$(".btn-readmore").removeClass("no-login");
$(".btn-readmore").addClass("fans-read-more");
$(".btn-readmore").removeAttr("href");
$(".btn-readmore").removeAttr("target");
$(".btn-readmore").removeAttr("rel");
$(".btn-readmore").click();
// 已登录用户展开评论
try {
document.getElementById("btnMoreComment").click();
} catch (e) {}
// 删除查看更多按钮
$("#btnMoreComment").parent("div.opt-box").remove();
// 展开内容
$("div.comment-list-box").css("max-height", "none");
// 改回背景颜色
$(".login-mark").remove();
// 删除登录框
$(".login-box").remove();
} else if (num === 2) {
// 挡住评论的“出头推荐”
if ($(".recommend-box").length > 1) {
$(".recommend-box")[0].remove();