使用JavaScript从外部文件读取CSS?
我希望能够在一个页面上为一个内部工具加载的所有CSS文件上运行正则表达式。这使我能够lint CSS文件并检查任何冲突声明 通过迭代document.stylesheets并获取cssRules的值,这对本地文件非常有效 但是,对于从外部站点(如Typekit、Google Fonts等)加载的CSS,cssRules返回null,请参见图片 我尝试使用JSONP获取该文件,但它返回了一个无效的令牌,因为它可能需要JSON,并且得到了CSS的响应。有没有我还没有考虑过的解决方法 为了完整性,下面是我尝试过的JSONP测试:使用JavaScript从外部文件读取CSS?,javascript,css,regex,jsonp,Javascript,Css,Regex,Jsonp,我希望能够在一个页面上为一个内部工具加载的所有CSS文件上运行正则表达式。这使我能够lint CSS文件并检查任何冲突声明 通过迭代document.stylesheets并获取cssRules的值,这对本地文件非常有效 但是,对于从外部站点(如Typekit、Google Fonts等)加载的CSS,cssRules返回null,请参见图片 我尝试使用JSONP获取该文件,但它返回了一个无效的令牌,因为它可能需要JSON,并且得到了CSS的响应。有没有我还没有考虑过的解决方法 为了完整性,下面
$.ajax({
type: 'GET',
url: "path/to/file.css",
jsonp: "callback",
dataType: "jsonp",
success: function(response) {
var test = JSON.stringify(response);
console.log(test);
}
});
是否可以从这些样式表中获取CSS作为字符串,我可以通过我的正则表达式传递它?尝试使用完整的CSS链接,只使用ajax的url属性 演示: $.ajax{ url://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.1/css/bootstrap-theme.min.css } .Donefunction结果{ $'.style'.htmlresult; }; .风格{ 最大宽度:300px; 最大高度:300px; 溢出:自动;
没有办法解决这个问题,css不是JSON,也不是JSONP,除非您从中获取文件的主机启用跨源共享,否则您无法使用客户端javascript获取这些文件。您可以创建一个PHP脚本,使用curl获取样式表,例如,通过AJAX将其返回到页面供您处理。