学无先后,达者为师

网站首页 前端文档 正文

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

作者:白菜new 更新时间: 2022-01-06 前端文档

前言:

由于业务需求,将页面内容转成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
}

原文链接:https://blog.csdn.net/qq_43850819/article/details/119443817

栏目分类
最近更新