一种不常见的跨域方式--使用CSS3特性做跨域
来源:互联网 发布:webclient post json 编辑:程序博客网 时间:2024/05/18 03:34
CSST (CSS Text Transformation)
通过CSS3的content获取内容。
利用js动态创建一个link插入到文档中, 请求css文件.
利用 computedStyle = window.getComputedStyle 获取指定元素的style 对象
利用 computedStyle .content 获取内容
服务端可以返回的 css 文件内容:
@keyframes anima {
from {}
to {
opacity: 0;
}
}
@-webkit-keyframes anima {
from {}
to {
opacity: 0;
}
}
#CSST {
content: "${text}";
animation: anima 2s;
-webkit-animation: anima 2s;
}
${text}就是我们要填充的数据
监听函数 animationstart/webkitAnimationStart 来判断css是否加载完成
给#CSST元素设置动画
js逻辑:
function handle () {
var computedStyle = getComputedStyle(span, false);
var content = computedStyle.content;
console.log('content: %s', content);
var match = content.match(/[\w+=\/]+/);
// base64解码
if (match) {
try {
content = decodeURIComponent(escape(atob(match[0])));
} catch (ex) {
fn(ex);
return;
}
}
return content
}
var CSST = document.getElementById('CSST');
//监听事件
CSST.addEventListener('animationstart', handler, false);
CSST.addEventListener('webkitAnimationStart', handler, false);
通过CSS3的content获取内容。
利用js动态创建一个link插入到文档中, 请求css文件.
利用 computedStyle = window.getComputedStyle 获取指定元素的style 对象
利用 computedStyle .content 获取内容
服务端可以返回的 css 文件内容:
@keyframes anima {
from {}
to {
opacity: 0;
}
}
@-webkit-keyframes anima {
from {}
to {
opacity: 0;
}
}
#CSST {
content: "${text}";
animation: anima 2s;
-webkit-animation: anima 2s;
}
${text}就是我们要填充的数据
监听函数 animationstart/webkitAnimationStart 来判断css是否加载完成
给#CSST元素设置动画
js逻辑:
function handle () {
var computedStyle = getComputedStyle(span, false);
var content = computedStyle.content;
console.log('content: %s', content);
var match = content.match(/[\w+=\/]+/);
// base64解码
if (match) {
try {
content = decodeURIComponent(escape(atob(match[0])));
} catch (ex) {
fn(ex);
return;
}
}
return content
}
var CSST = document.getElementById('CSST');
//监听事件
CSST.addEventListener('animationstart', handler, false);
CSST.addEventListener('webkitAnimationStart', handler, false);
元素动画启动,就可以获取到 content 里的内容了
转载自:http://alili.tech/2017/06/20/Javascript/CSST%20(CSS%20Text%20Transformation)%20%E4%BD%BF%E7%94%A8CSS3%E7%89%B9%E6%80%A7%E5%81%9A%E8%B7%A8%E5%9F%9F/
阅读全文
0 0
- 一种不常见的跨域方式--使用CSS3特性做跨域
- android中一种不常见的函数调用方式
- [C/C++不常见语法特性]_[位域的使用细节]
- 一些不常见的java特性
- CheckBoxList 的一种使用方式
- iOS监听耳机插拔的不使用系统通知实现的一种方式
- [C/C++不常见语法特性]_[使用dynamic_cast 强制转换的优点]
- 使用一种非常不优雅的方式解决斐波那契数列
- java中一种不常见的方法声明
- CSS3的新特性
- CSS3的高级特性
- CSS3新的特性
- CSS3的特性
- CSS3新特性,绘制常见图形
- 一种错误的事务使用方式
- CArchive使用的一种错误方式
- 一种UltraVNC反向连接方式的使用
- unity animator的一种使用方式
- UITableView 下拉header放大,statusBar改变颜色
- Java与XML
- Android不同的图片模式,每个像素占用的字节大小
- org.apache.hadoop.hbase.PleaseHoldException: Master is initializing 的一种原因
- Ansible--通过SSH与远程服务器连接
- 一种不常见的跨域方式--使用CSS3特性做跨域
- ubuntu软件安装
- [概率DP][多项式取模] NOI2017.day1 T3 泳池
- oracle里对某个用户下的对象数量的统计
- ZooKeeper启动占用8080端口
- Unity Apex寻路插件 与Mecanim动画结合。
- springboot logback日志
- Android_自定义View、Fragment
- 【Java笔记】单例模式设计模式