IE BUG系列:由haslayout导致的问题.
IE中由haslayout导致的CSS问题非常的多。
其中我遇到的有:
border在滚动条滚动后断线
CSSfilter属性失效
甚至还有div被强设高度 任何CSS JS操作都将重置高度的情况出现…
还有其他的等等问题…有点变态的样式问题大部分都与其有关。
那么要解决这类问题,希望大家清楚的了解一下haslayout.再做出相应的解决.
阅读全文
IE中由haslayout导致的CSS问题非常的多。
其中我遇到的有:
border在滚动条滚动后断线
CSSfilter属性失效
甚至还有div被强设高度 任何CSS JS操作都将重置高度的情况出现…
还有其他的等等问题…有点变态的样式问题大部分都与其有关。
那么要解决这类问题,希望大家清楚的了解一下haslayout.再做出相应的解决.
阅读全文
今天同事遇到个怪问题.链接在点击的时候弹出一个模拟窗口.里面是一个iframe.
但是测试的时候发现iframe加载的网页加载一半以后请求被强行中断.
造成网页空白或只打开一半.
最终定位问题:
IE6在链接设置为href=”javascript:void(0);”的时候,
onclick执行的函数中如果有关于URL跳转的行为都会被强行中断.
因为document.location.href和当前a节点的href冲突了.
一般的解决方法就是:
1 | <a href="#" onclick="fn();return false;" >click</a> |
或者
1 | <a href="javascript:void fn();" >click</a> |
另外在onclick执行的函数中如果有document.createElement创建iframe节点的时候
要先插入到dom结构中 再设置src,
否则设置src后会马上进行请求.然后在插入dom结构中的时候重新渲染,结果请求被中断.
做以记录.HOHO~
最近Nginx比较流行, 另外以前学过一些PHP,想温习一下.
所以下载了一个一键安装版本的服务器套件试了一下.
Windows:
APMServ5.2.6
这个软件超级傻瓜化并且集成了很多软件 可以选择性的安装启动以及配置.
在windows上做调试工作很方便.
Linux:
LNMP
这套套件使用的是目前的稳定版本.
可以作为服务器软件套装 .
我在公司的开发机上装了一下 不错哦~
不过我将Nginx改为0.7.65了.
今天看了月大一篇博文.
建立带有静态变量的函数范式:
1 2 3 4 5 6 | var myFunc = (function(){ var localVariable = "someValue"; return function(args...){ //function body } })(); |
确实,这样在建立函数体之前将闭包执行依次 将需要静态化的变量造成内存泄露.
那么在返回的函数中如果不创建同名变量的话确实可以达到目的.
不过这样写的话函数将无法被预处理.要使用这个函数只能在这段代码下面…
孰优孰劣实在不好说.看情况应用吧.
今天前端群里聊起了一个比较感兴趣的问题.
1 2 | var $=document.getElementById; $('elementID').innerHTML='...'; |
在FF中 这段代码为什么不能运行呢?
最后 ‘phzzy’ 同学给出了答案:’是this的问题.’
那么如何判断 当前函数执行的时候this是指的谁呢?
我写了个简单的例子给大家解释一下.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | window.v=0 var class1=function(){ this.v=10; } class1.prototype.test=function(){ alert(this.v); } /* obj.test()在执行的时候test函数的this归属于前置对象obj obj是class1的实例 在初始化的时候执行了this.v=10; 所以结果是10 */ var obj=new class1(); obj.test(); /* 这里,test2直接指向了obj.test这个函数.在运行的时候没有任何前置对象. 那么可以看成 window.test2(); 则结果是window.v 就是0 */ var test2=obj.test; test2(); /* 这里调用了class.prototype.test(); test的前置对象是prototype 但是prototype并没有v属性 所以结果是...undefined */ class1.prototype.test(); |
通过上面的例子大家应该明白 在执行带有this的函数时.根据写法回指引向不同的对象.所以documen.getElementById被更名以后不能运行.因为他内部有和document相关的this操作.(只有FF有这个问题,IE的document.getElementById本身就是一个对象,并非function所以不存在这个问题).
那么我们需要$能够正常的运行怎么办呢?
你可以写document.$=document.getElementById;然后用document.$去运行
或者:$.apply(document,elementID)