在js中获取vue文件的style标签下的内容

12 篇文章 0 订阅
5 篇文章 0 订阅

前言:

由于业务需求,将页面内容转成pdf,前端需要提供整个页面的dom元素提供给后端,但样式并不是在行内而是在<style>标签里。


解决方案:

通过原生属性 document.styleSheets 读取vue单页面组件加载过的所有css样式

const cssBlock = document.styleSheets

在这里插入图片描述
有了获取到的css样式表就能遍历去找到我需要的,由于是伪数组,我们先用ES6解构一下;点开可以发现他的顺序是从页面初始化开始,大概率我们需要的样式会在最后,所以我们用reverse先反转,再通过find去遍历。
在这里插入图片描述
遍历后我们可以通过我们需要得样式去获取那一组件的样式。以下是完整代码。

function getCssBlock() {
  const cssBlock = document.styleSheets
  const styleData = [...cssBlock].reverse().find(({ cssRules }) => {
    return [...cssRules].find((rule) => {
      return ['.voucher_head'].includes(rule.selectorText)
    })
  })
  return styleData.ownerNode.innerText
}
要在Vue读取JSON文件内容,可以按照以下步骤进行操作: 1. 创建一个名为data.json的JSON文件,并将其保存在项目目录下的static文件。 2. 在Vue组件导入JSON文件。可以使用import语句将文件导入为一个变量,例如: ```javascript import data from '@/static/data.json' ``` 这里的`@`是别名,表示项目根目录。将导入的JSON文件赋值给一个变量(例如`data`)供组件使用。 3. 在Vue组件的data选项使用导入的JSON数据: ```javascript export default { data() { return { jsonData: data } } } ``` 这样,`jsonData`变量就可以在组件使用了。 4. 在模板使用`jsonData`变量JSON数据。例如,可以使用`v-for`指令遍历JSON数组,并将数据渲染到模板: ```html <template> <div> <p v-for="item in jsonData">{{ item }}</p> </div> </template> ``` 这样,每个JSON数组的项都会被渲染为一个`<p>`标签,并显示在模板。 需要注意的是,读取本地JSON文件时需要在开发环境下运行,因为静态文件只能在开发服务器访问。 以上就是Vue读取JSON文件内容的方法。希望对您有所帮助。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [vue 项目如何读取本地json文件数据](https://blog.csdn.net/2301_76433421/article/details/128943220)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Vue加载json文件的方法简单示例](https://download.csdn.net/download/weixin_38746701/12947080)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [VUE获取json里的数据](https://blog.csdn.net/weixin_61686632/article/details/125371363)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白菜new

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值