首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript:操作StyleSheet文本

JavaScript:操作StyleSheet文本
EN

Stack Overflow用户
提问于 2016-01-14 01:36:31
回答 1查看 55关注 0票数 0

我知道可以使用document.styleSheets获得附加样式表的集合。我也知道,在样式表中使用单个规则是可能的。

是否可以读取和写入样式表的整个文本?特别是,我希望访问通过link标记附加的样式表。我在搜索引擎中没有发现任何东西,文档化样式表的文章(比如MDN文章)似乎没有提到它。

我想使用JavaScript动态替换样式表的某些内容,实现一个稍微动态的样式表。

(我更喜欢没有jQuery的解决方案,即使我必须自己做跨浏览器的工作。幸运的是,IE8不是一个问题)。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2016-01-14 01:50:24

如果您使用某种查询方法来获取<style>元素,而不是通过document.styleSheets访问它,这是可能的。

代码语言:javascript
复制
var pre = document.querySelector('pre');
var styleSheet = document.querySelector('style');
pre.innerText = styleSheet.innerText;
代码语言:javascript
复制
/* Voila! */
#test {
    position: fixed;
 }
代码语言:javascript
复制
<pre></pre>

要访问外部样式表的内容,唯一的方法是使用AJAX。假设您可以访问jQuery的$.ajax函数,它看起来如下所示:

代码语言:javascript
复制
var styleSheet = document.querySelector('style');
$.ajax({
  url: styleSheet.href,
  success: function(contentsOfStyleSheet) {
    // do stuff
  }
});

这将允许您访问内容,但您将无法以这种方式直接操作页面的内容。更改外部CSS文件规则的唯一方法是通过您提到的document.styleSheets API。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34780256

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档