关于vue.js开发chrome extension时CSP的疑惑

发布于 2022-09-04 09:49:43 字数 1455 浏览 14 评论 0

前言

最近在学着制作chrome-extension,打算用element做页面组件及主题,但在此需要引入vue.js才可以.疑问就在于vue.js 2.*的使用碰到了CSP,而官方示例上只有一句话概括,让我还是有点不明所以...

尝试下载github上的vue.js,分之切换至dev,并在目录中执行npm install,随后引入dist/vue.js至html.

如果是在浏览器中直接运行html文件,无任何问题,组件及主题正确识别,但在chrome-extension中则不生效.

图片描述

页面代码如下

<html>
    <head>
        <style>
            * {
                margin: 0;
                padding: 0;
            }

          body {
              width: 200px;
              height: 100px;
          }

          div {
              line-height: 100px;
              font-size: 42px;
              text-align: center;
          }
        </style>
        <link href="./js/element-ui/packages/theme-default/lib/index.css" rel="stylesheet">
        </link>
    </head>
    <body>
        <div id="clock_div">
            <el-tag>
                标签一
            </el-tag>
        </div>
    </body>
    <!-- 先引入 Vue -->
    <script src="./js/vue/dist/vue.js"></script>
</html>
<!-- 引入组件库 -->
<script src="./js/element-ui/lib/index.js"></script>
<script>
    new Vue().$mount('#clock_div')
</script>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

魂归处 2022-09-11 09:49:43

这个是chrome的CSP安全策略导致的,只要设置好 Content-Security-Policy 就行了。
在页面中添加以下 <mate>

<meta http-equiv="Content-Security-Policy" content="default-src 'unsafe-inline' 'unsafe-eval'">
  • 'unsafe-inline' 允许使用内联 JavaScript 和 CSS
  • 'unsafe-eval' 允许使用类似 eval 的 text-to-JavaScript 机制

这些都是使用 vue 时需要用到的机制。

相关资料:Google Web Fundamentals - 内容安全政策

究竟谁懂我的在乎 2022-09-11 09:49:43

建议参考 https://github.com/vuejs/vue-...,这是一个用 Vue 开发的用于 Vue、Vuex 调试的 chrome extension

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文