Mobile Link Replacer

Replaces mobile links on web pages with their desktop counterpart.

  1. // ==UserScript==
  2. // @name Mobile Link Replacer
  3. // @namespace
  4. // @version 0.9.9
  5. // @description Replaces mobile links on web pages with their desktop counterpart.
  6. // @author Spencer Ayers-Hale
  7. // @license GPL-3.0-or-later; http://www.gnu.org/licenses/gpl-3.0.txt
  8. // @run-at document-idle
  9. // @match https://*/*
  10. // @match http://*/*
  11. // @exclude https://www.reddit.com/chat/minimize
  12. // @exclude https://www.craigslist.org/static/www/localStorage*
  13. // @exclude https://auth.discogs.com/*
  14. // @exclude https://www.youtube.com/embed/*
  15. // @exclude https://widget.pico.tools/*
  16. // @exclude https://m.stripe.network/*
  17. // @exclude *content.s3.amazonaws.com/*
  18. // @exclude https://cdns.*.gigya.com/*
  19. // @exclude https://platform.twitter.com/*
  20. // @exclude https://myaccount.nytimes.com*
  21. // @exclude *googleapis.com*
  22. // @exclude https://www.google.com/recaptcha/*
  23. // @exclude https://cdn.*.com/widgets/*
  24. // @exclude https://buy.tinypass.com/*
  25. // @exclude https://trinitymedia.ai/player/*
  26. // @exclude https://embed.air.tv/v1/*
  27. // @exclude https://www.11alive.com/embeds/*
  28. // @exclude https://widget.yappaapp.com/*
  29. // @exclude https://authenticate.economist.com/*
  30. // @exclude https://embed.acast.com/*
  31. // @exclude https://o.prod.theintercept.com/checkout/*
  32. // @exclude https://identity-eu.nationalgeographic.com/*
  33. // @exclude *rackcdn.com/*
  34. // @exclude *msi.com/*
  35. // @exclude www.lg.com*
  36. // @exclude https://support.google.com*
  37. // ==/UserScript==
  38.  
  39. (function() {
  40. 'use strict';
  41.  
  42. var num = document.getElementsByTagName("a").length; //number of links on page
  43. var cnt = 0; //current link number
  44. var newLink;
  45.  
  46. while(cnt < num){
  47. const link = document.getElementsByTagName("a")[cnt].href; //get original link
  48.  
  49. //find and replace
  50. //Wikipedia
  51. newLink = link.replaceAll(/m.wikipedia/gi, 'wikipedia');
  52. //Facebook
  53. newLink = newLink.replaceAll(/m.facebook/gi, 'facebook');
  54. //Twitter
  55. newLink = newLink.replaceAll(/mobile.twitter/gi, 'twitter');
  56. newLink = newLink.replaceAll(/m.twitter/gi, 'twitter');
  57. //YouTube
  58. newLink = newLink.replaceAll(/m.youtube/gi, 'youtube');
  59. //IMDB
  60. newLink = newLink.replaceAll(/m.imdb/gi, 'imdb');
  61. //AliExpress
  62. newLink = newLink.replaceAll(/m.aliexpress/gi, 'aliexpress');
  63. //Blogger
  64. if (newLink.indexOf("blogspot.com") > -1){
  65. newLink = newLink.replaceAll(/m=1/gi, 'm=0');
  66. }
  67. //CBS Local
  68. if (newLink.indexOf("cbslocal.com") > -1){
  69. newLink = newLink.replaceAll(/amp/gi, '');
  70. }
  71. //Mozilla Wiki
  72. if (newLink.indexOf("wiki.mozilla.org") > -1){
  73. if (newLink.indexOf("index.php?title=") < 0){
  74. newLink = newLink.replaceAll(/wiki.mozilla.org\//gi, 'wiki.mozilla.org/index.php?title=');
  75. newLink = newLink.concat('&mobileaction=toggle_view_desktop');
  76. }
  77. else if (newLink.endsWith("&mobileaction=toggle_view_mobile")){
  78. newLink = newLink.replaceAll(/&mobileaction=toggle_view_mobile/gi, '&mobileaction=toggle_view_desktop');
  79. }
  80. }
  81.  
  82. document.getElementsByTagName("a")[cnt].href=newLink; //write new link to page
  83. cnt++;
  84. }
  85.  
  86. })();