日常知识记录(更新中)
2018-02-07 15:57
232 查看
1. 为什么用element.style 获取样式表的某个属性时获取不到?
element.style返回的是一个cssStyleDeclaration对象,只能操作内嵌样式,对除此以外的样式应用表的属性都会忽略。比如,element.style.background= ‘red’,实际操作后的后果是直接给元素添加了内嵌样式 。由此,引申出下一个问题的思考。2. 如何获取样式表的属性值
css样式大致分为三种:
内嵌样式:写在tag里面,只对当前tag生效,对其他都无效内部样式:写在html里面,一般是head中的style里,对当前所在网页有效
外部样式:如果样式表过于复杂,也可能会抽出来写到一个通用的以’.css’后缀结尾的文件中,再引用到页面中来。
基于前面实现可知,element.style只能用来获取和操作内嵌样式,那么考虑非内嵌样式的获取,查阅资料后发现:
window.getComputedStyle 可以用来操作非IE的非内嵌样式。
getComputedStyle是一个可以获取当前元素所有最终使用的CSS属性值。返回的是一个CSS样式声明对象([object CSSStyleDeclaration]),只读。
element.currentStyle 可以用来操作IE的非内嵌样式
综合考虑,如何用js来获取css样式,如果明确样式是非内嵌样式:
(ele.currentStyle?ele.currentStyle:window.getComputedStyle(ele,'伪类(没有写null)')).attr(考虑IE兼容性)
3. 异步请求回调中新开窗口被浏览器视为广告而拦截
这个问题我也参考了网上很多的解决方案,最终比较有效的是,在发生请求前先打开一个空标签,这样,浏览器会认为这个行为是用户的点击触发的。等到接收到具体的数据以后,再把新开的空标签的地址重定向为获取到的地址。如果出错,则再把空标签关闭。function click(){ var w = window.open('','_blank');//先打开临时窗体,由于是点击事件内触发,不会被拦截 $.ajax({ url:'...', .... success: function (data) { w.location.href= data.url; //当回调的时候更改临时窗体的路径 }, error:function(){ w.close(); //回调发现无需打开窗体时可以关闭之前的临时窗体 } }); }
4. 重定向后dom数据获取问题
这个问题是发生在,前端向后端发起请求之后,后端把接口进行了重定向,之后获取到的数据可以在页面上正常的渲染展示。但是,当取dom元素希望获取该数据时,缺发现无法获取实际重定向之后获取的数据。我个人知识浅薄,目前不知道怎么解决,还请知道的大佬,可以给我点明一下~先提前THX~
5. js 实现记住密码
js 实现记住密码,就是利用cookie来进行信息存储。鉴于现在对这个实现的代码网上很多,我就不贴了,记录一下自己碰到的几个问题:document.cookie = ‘xxxx’设置失效?
chrome处于安全性考虑不能设置本地cookie,网页文件需要在服务器环境下执行,必须将html文件放置在服务器目录,如tomcat下, 然后启动服务器再打开浏览器地址栏再访问。
注意失效时间(expires=xxx),如果失效时间设置成当前时间点那么document.cookie=”xxxx”的设置也是失效的
expires 如果不设置的话,关闭浏览器,cookies就失效,所以expires应该和cookie同时写入:
document.cookie = type + ‘=’ + escape(name) + ‘; expires=’ + date.toGMTString();
document.cookie = type + ‘=’ + escape(name) + ‘; expires=’ + date.toGMTString();
为什么一定要用eascape()?
因为cookie限制‘只能用在url中编码的字符串’,所以用escape吧字符串按url方法来编码,取值的时候用unescape()来解码。
日期 toCMTSting()?
日期的失效时间都是用格林威治时间格式,其他格式都没用。所以最后要转化
expires 是不可读的,所以当你用document.cookie取expires时是取不到的,浏览器会自己判断cookie里面的内容有没有过期,一般取得出来的都是未过期的内容。
相关文章推荐
- 记录前端的面试日常(持续更新)
- iOS 开发过程中记录的一些小知识(持续更新...)
- 简单小知识 记录一下 慢慢更新积累
- 基础知识扫盲篇【记录】(持续更新)
- 工作日常问题记录与解决 更新日期:2016/1/22
- 记录些多而杂的知识,持续更新
- JS的一些日常知识(更新中)
- Python小知识的记录(持续更新)
- 日常咸鱼记录17/12/13,更新Vmware Tools
- 日常问题记录,长期更新。
- JavaScript 小知识记录(长期更新)
- weblogic-重点知识记录-持续更新
- 日常遇到的常见问题记录 ------持续更新
- 搭建Debian源基础知识记录
- Scrapy问题记录(不定期更新)
- 日常记录:常用linux指令man page之cp
- Oracle日常错误及解决办法(持续记录......)
- 关于mysql中表更新二进制日志文件与information_schema记录的几点发现
- Python做数据分析中需要掌握的命令行知识-持续更新中
- JNI开发遇到的一些问题记录(持续记录更新)