做项目遇见的一些骚操作
程序员文章站
2022-06-09 08:41:17
...
1. 页面初始化定义css 使用 js 中的全局变量
背景:h5页面的整个背景颜色,background 是从 window.PAGE_DATA 中取的,所以css 中 如何使用 js 全局变量呢?
一开始使用过这个方法,但是被同事们说兼容性不好,果断被毙了。。。于是乎,需要使用js代码操作css
在 index.html 中引入如下代码即可,定义 main-bg
<script>
(function() {
var style = document.createElement("style");
style.innerText = '.main-bg { background: ' + (window.PAGE_DATA.seckillPageDto && window.PAGE_DATA.seckillPageDto.seckillPageBenefit.borderBgColor) + ' }'
var s = document.getElementsByTagName("head")[0];
s.parentNode.insertBefore(style, s);
})()
</script>
页面渲染:
2. 对象一层一层取值,如何兼容 空值
比如如下,有一层没值就会报错
window.PAGE_DATA.seckillPageDto.seckillPageBenefit.borderBgColor
兼容简单写法
(((window.PAGE_DATA.seckillPageDto||{}).seckillPageBenefit||{}).borderBgColor) || ''
不用 && 运算符,这个比 && 运算符简单