jQuery:有没有一种方法可以抓取HTML元素的外部CSS并附加到它的“style”上?属性

jQuery: Is there a way to grab a HTML element's external CSS and append to its "Style" attribute?

本文关键字:外部 CSS 属性 style 元素 有没有 一种 抓取 HTML 方法 jQuery      更新时间:2023-09-26

基本上我想做的是抓住所有的CSS是在一个外部样式表中引用,例如<link rel="stylesheet" href="css/General.css">和附加到任何现有的样式为每个HTML元素在我的页面。(使所有的CSS行内)

这样做的原因是因为我需要调用.html()来抓取div并发送到服务器以制作PDF。这个工具的缺点是它只能识别内联CSS。

有什么办法可以做到吗?

编辑:这个问题与我的"可能的重复"有关,只是说把所有东西都放在<style>标签中。虽然这可能是有用的,但我主要关心的是加载到style="" html属性

过去我使用window.getComputedStyle(element);来达到这个目的。它将返回应用于元素的所有样式的映射,然后您可以循环并将其作为内联样式应用。我不会将它们应用到实际的DOM,如果你可以避免它(只是创建一个文档片段/concat它在你发送的字符串的风格)。在一个元素上应用这么多的内联样式将会是性能上的噩梦。

使用计算样式可能还不够,因为在用户代理样式表中有供应商前缀的样式。如果您从Firefox发送标记到PhantomJS(webkit),您显然不会得到相同外观的元素。