demo2.html 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. <!--
  2. // 这个demo示例如何动态加载vConsole
  3. // (1)访问 demo2.html 时(一般情况),不加载vConsole
  4. // (2)访问 demo2.html?dev_mode=1 时(调试模式),加载vConsole
  5. --><!DOCTYPE html>
  6. <html>
  7. <head>
  8. <meta charset="utf-8">
  9. <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no, viewport-fit=cover">
  10. <title>vConsole/Demo2</title>
  11. <link href="./lib/weui.min.css" rel="stylesheet"/>
  12. <link href="./lib/demo.css" rel="stylesheet"/>
  13. </head>
  14. <body ontouchstart>
  15. <div class="page">
  16. <h1 class="page_title">Demo 2</h1>
  17. <a href="javascript:;" class="weui_btn weui_btn_primary js_btn_log">打印日志</a>
  18. <a href="javascript:;" class="weui_btn weui_btn_default js_btn_dev">打开调试模式</a>
  19. </div>
  20. <div class="weui_toptips weui_notice" id="js_tips">已打印log</div>
  21. </body>
  22. <script>
  23. // 判断url参数
  24. const isDevMode = window.location.search.includes('dev_mode=1');
  25. const $devBtn = document.querySelector('.js_btn_dev');
  26. if (isDevMode) {
  27. $devBtn.innerHTML = '关闭调试模式';
  28. // 动态引入vConsole
  29. const elm = document.createElement('SCRIPT');
  30. elm.src = '../dist/vconsole.min.js';
  31. elm.onload = () => {
  32. window.vConsole = new window.VConsole();
  33. };
  34. document.body.append(elm);
  35. } else {
  36. $devBtn.innerHTML = '打开调试模式';
  37. }
  38. $devBtn.addEventListener('touchend', (e) => {
  39. let search = window.location.search;
  40. if (isDevMode) {
  41. search = search.replace('dev_mode=1', '');
  42. } else {
  43. search += '&dev_mode=1';
  44. }
  45. window.location.search = search;
  46. });
  47. document.querySelector('.js_btn_log').addEventListener('touchend', (e) => {
  48. // 打印log时无须判断是否为dev_mode,
  49. // 未加载vConsole时,console.log()不会显示到前台
  50. console.log('Hello World');
  51. showTips();
  52. });
  53. // 用于页面内展示顶部tips
  54. let tipsTimer;
  55. const showTips = () => {
  56. tipsTimer && clearTimeout(tipsTimer);
  57. const $tips = document.querySelector('#js_tips');
  58. $tips.style.display = 'block';
  59. tipsTimer = setTimeout(() => {
  60. $tips.style.display = 'none';
  61. }, 1500);
  62. };
  63. </script>
  64. </html>