demo3.php 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. <?php
  2. // 这个demo用于测试CSP的规则
  3. $nonce = rand(10000, 99999);
  4. header("Content-Security-Policy: script-src 'self' 'unsafe-inline' 'unsafe-eval' 'nonce-" . $nonce . "';");
  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/Demo3</title>
  11. <link href="./lib/weui.min.css" rel="stylesheet"/>
  12. <link href="./lib/demo.css" rel="stylesheet"/>
  13. <!-- 引入vConsole的JS库 -->
  14. <script src="../dist/vconsole.min.js" nonce="<?php echo $nonce; ?>"></script>
  15. <script nonce="<?php echo $nonce; ?>">
  16. // 初始化vConsole
  17. window.vConsole = new window.VConsole();
  18. </script>
  19. </head>
  20. <body>
  21. <div class="page">
  22. <h1 class="page_title">Demo 3</h1>
  23. <a href="javascript:;" class="weui_btn weui_btn_primary js_btn_log">Hello World</a>
  24. </div>
  25. <div class="weui_toptips weui_notice" id="js_tips">已打印log</div>
  26. </body>
  27. <script nonce="<?php echo $nonce; ?>">
  28. document.querySelector('.js_btn_log').addEventListener('touchend', function(e) {
  29. // 打印log时无须判断是否为dev_mode,
  30. // 未加载vConsole时,console.log()不会显示到前台
  31. console.log('Hello World');
  32. showTips();
  33. });
  34. // 用于页面内展示顶部tips
  35. let tipsTimer;
  36. const showTips = () => {
  37. tipsTimer && clearTimeout(tipsTimer);
  38. const $tips = document.querySelector('#js_tips');
  39. $tips.style.display = 'block';
  40. tipsTimer = setTimeout(() => {
  41. $tips.style.display = 'none';
  42. }, 1500);
  43. };
  44. </script>
  45. </html>