Switch language button for tour.golang.org

给页面添加一个切换中/英文的按钮

  1. // ==UserScript==
  2. // @name Switch language button for tour.golang.org
  3. // @namespace https://github.com/ipcjs/
  4. // @version 0.3
  5. // @description 给页面添加一个切换中/英文的按钮
  6. // @author ipcjs
  7. // @icon https://www.google.com/s2/favicons?domain=golang.org
  8. // @match https://tour.go-zh.org/*
  9. // @match https://go.dev/tour/*
  10. // @grant none
  11. // ==/UserScript==
  12.  
  13. const hosts = [
  14. "go.dev/tour",
  15. "tour.go-zh.org",
  16. ]
  17.  
  18.  
  19. function getNextUrl() {
  20. const url = location.href
  21. for (const [index, host] of hosts.entries()) {
  22. if (url.match(host)) {
  23. const nextHost = hosts[(index + 1) % hosts.length]
  24. return url.replace(host, nextHost)
  25. }
  26. }
  27. throw new Error('current url not match any host')
  28. }
  29.  
  30.  
  31. const $div = document.createElement('div')
  32.  
  33. $div.innerHTML = `<span class="nav" title="左键当前页面打开, 右键新页面打开">
  34. <svg height="100%" viewBox="0 0 24 24" width="100%">
  35. <path d="M0 0h24v24H0z" fill="none"/>
  36. <path d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"/>
  37. </svg>
  38. </span>`
  39. $div.addEventListener('click', () => {
  40. location.href = getNextUrl()
  41. })
  42. $div.addEventListener('contextmenu', () => {
  43. window.open(getNextUrl())
  44. })
  45. const $topBar = document.querySelector('.top-bar')
  46. $topBar.appendChild($div)