Left: | ||
Right: |
LEFT | RIGHT |
---|---|
1 "use strict"; | 1 "use strict"; |
2 | 2 |
3 (function() | 3 (function() |
4 { | 4 { |
5 var supportedPlatforms = { | 5 var supportedPlatforms = { |
saroyanm
2018/03/23 19:08:37
I wonder what SEO implications this can introduce,
ire
2018/03/26 10:23:01
This is a good point. As I wasn't part of the init
| |
6 | |
6 // Desktop browsers | 7 // Desktop browsers |
7 "chrome": { | 8 "chrome": "https://chrome.google.com/webstore/detail/cfhdojbkjhnklbpkdaibdcc ddilifddb", |
8 installer: "https://chrome.google.com/webstore/detail/cfhdojbkjhnklbpkdaib dccddilifddb", | 9 "opera": "https://addons.opera.com/extensions/details/opera-adblock/?display =en-US", |
saroyanm
2018/03/23 19:08:37
Seems like here we also don't have inline installa
ire
2018/03/26 10:23:01
Done.
| |
9 label: "Chrome" | 10 "yandexbrowser": "https://chrome.google.com/webstore/detail/cfhdojbkjhnklbpk daibdccddilifddb", |
10 }, | 11 "msie": "https://update.adblockplus.org/latest/adblockplusie.exe", |
11 "opera": { | 12 "msedge": "https://www.microsoft.com/store/p/adblock-plus/9nblggh4r9nz", |
12 installer: "https://addons.opera.com/extensions/details/opera-adblock/?dis play=en-US", | 13 "firefox": "https://update.adblockplus.org/latest/adblockplusfirefox.xpi", |
13 label: "Opera" | 14 "safari": "https://update.adblockplus.org/latest/adblockplussafari.safariext z", |
14 }, | |
15 "yandexbrowser": { | |
16 installer: "https://chrome.google.com/webstore/detail/cfhdojbkjhnklbpkdaib dccddilifddb", | |
17 label: "Yandex Browser" | |
18 }, | |
19 "msie": { | |
20 installer: "https://update.adblockplus.org/latest/adblockplusie.exe", | |
21 label: "Internet Explorer" | |
22 }, | |
23 "msedge": { | |
24 installer: "https://www.microsoft.com/store/p/adblock-plus/9nblggh4r9nz", | |
25 label: "Micrsoft Edge" | |
26 }, | |
27 "firefox": { | |
28 installer: "https://update.adblockplus.org/latest/adblockplusfirefox.xpi", | |
29 label: "Firefox" | |
30 }, | |
31 "safari": { | |
32 installer: "https://update.adblockplus.org/latest/adblockplussafari.safari extz", | |
33 label: "Safari" | |
34 }, | |
35 "maxthon": "", | 15 "maxthon": "", |
36 | 16 |
37 // Mobile platforms | 17 // Mobile platforms |
38 "ios": { | 18 "ios": "https://eyeo.to/adblockbrowser/ios/abp-website", |
39 installer: "https://eyeo.to/adblockbrowser/ios/abp-website", | 19 "android": "https://eyeo.to/adblockbrowser/android/abp-website" |
saroyanm
2018/03/23 19:08:37
We might want to use this or similar redirection l
ire
2018/03/26 10:23:01
Ack.
| |
40 label: "iOS", | |
41 }, | |
42 "android": { | |
43 installer: "https://eyeo.to/adblockbrowser/android/abp-website", | |
44 label: "Android" | |
45 } | |
46 }; | 20 }; |
47 | 21 |
48 function setupHeroDownloadButton() | 22 function setupHeroDownloadButton() |
49 { | 23 { |
50 var heroDownloadButton = document.getElementById("hero-download-button"); | 24 var detectedPlatform = Object.keys(supportedPlatforms) |
51 var detectedPlatform; | 25 .find(bowser.hasOwnProperty.bind(bowser)); |
52 | |
53 for (var key in supportedPlatforms) if (bowser[key]) detectedPlatform = key; | |
54 | 26 |
55 if (!detectedPlatform) return; | 27 if (!detectedPlatform) return; |
56 | 28 |
57 document.body.classList.add(detectedPlatform); | 29 document.body.classList.add(detectedPlatform); |
58 | 30 |
59 if (detectedPlatform === "maxthon") return; | 31 if (detectedPlatform == "maxthon") return; |
32 | |
33 var heroDownloadButton = document.getElementById("hero-download-button"); | |
34 heroDownloadButton.href = supportedPlatforms[detectedPlatform]; | |
35 heroDownloadButton.textContent = document | |
36 .getElementById("download-label-" + detectedPlatform) | |
37 .textContent; | |
60 | 38 |
61 heroDownloadButton.href = supportedPlatforms[detectedPlatform].installer; | 39 heroDownloadButton.addEventListener("click", function(event) |
62 heroDownloadButton.textContent = document | 40 { |
63 .getElementById("hero-download-button-template") | 41 if (typeof chrome == "undefined") return; |
64 .innerHTML | 42 event.preventDefault(); |
65 .replace("browser", supportedPlatforms[detectedPlatform].label); | 43 |
44 try | |
45 { | |
46 chrome.webstore.install(); | |
47 } | |
48 catch(error) | |
49 { | |
50 window.location = "/" + this.hreflang + "/download"; | |
51 } | |
52 }); | |
66 } | 53 } |
67 | 54 |
68 if (bowser) setupHeroDownloadButton(); | 55 if (typeof bowser != "undefined") setupHeroDownloadButton(); |
69 | 56 |
70 }()); | 57 }()); |
LEFT | RIGHT |