遇到的问题集合
$ git clone git://github.com/Tzxhy/Tzxhy.github.io.git myWeb
后,push 时,提示:
1 | $ git push origin icc |
解决方法:
如果在 git clone 的时候用的是 git://github.com:xx/xxx.git 的形式,那么就会出现这个问题,因为这个 protocol 是不支持 push 的
用 $git clone git@github.com:lujinjianst/myNCCL.git
就可以用 git push 了。或者使用 https 形式的.
在页面 1 用 location 属性跳转到页面 2 时,再返回上一个页面 1, 火狐中不会再从 1 跳转到 2, 而其他浏览器会继续跳转.
起因源于一道前端笔试题:
1 | var fuc = [1,2,3]; |
问:控制台会如何打印?
1 2 3 3 3 3
虽然 setTimeout 函数在每次循环的开始就调用了,但是却被放到循环结束才执行,循环结束,i=3, 接连打印了 3 次 3。
这里涉及到 javascript 单线程执行的问题:javascript 在浏览器中是单线程执行的,必须在完成当前任务后才执行队列中的下一个任务。
另外,对于 javascript 还维护着一个 setTimeout 队列,未执行的 setTimeout 任务就按出现的顺序放到 setTimeout 队列,等待普通的任务队列中的任务执行完才开始按顺序执行积累在 setTimeout 中的任务。
所以在这个问题里,会先打印 1 2 3,而将 setTimeout 任务放到 setTimeout 任务队列,等循环中的打印任务执行完了,才开始执行 setTimeout 队列中的函数,所以在最后会接着打印 3 次 3。
由此,可以知道虽然设置为 0 秒后执行任务,实际上是大于 0 秒才执行的。可是这有什么用呢?
用处就在于我们可以改变任务的执行顺序!因为浏览器会在执行完当前任务队列中的任务,再执行 setTimeout 队列中积累的的任务。
通过设置任务在延迟到 0s 后执行,就能改变任务执行的先后顺序,延迟该任务发生,使之异步执行。
例子:
这个 keypress 函数原意是监听到用户输入字符串就将其完整的显示出来,但是奇怪的是最后一个字符串总是没能显示出来
但是只要改下 onkeypress 函数就好:
1 | $(‘input‘).onkeypress = function(){ |
PS: 或者将 keydown 改为 keyup 也行,具体原因猜测可能是 keydown 时,$(‘input‘).value 未来得及变化,(或者只有执行某个回调后变化).
原址: (http://www.cnblogs.com/suspiderweb/)
1 | </head> |
上文中报错,提示 test1.lastElementChild 为空对象。但把下的
去掉后,正常. why?
onClick 和 onDblClick 并存的解决方法 :
1 | <script type="text/javascript"> |
对 jquery 的使用(兼容 ie)
1 | <!--[if IE]> 所有的IE可识别 <![endif]--> 只能使用在ie9及其以下版本。ie10不再识别这种语法。 |
对 css 的 ie hack (使用 LESS):
1 | @ie8-10-fix:~"\9"; |
ie10 及以下版本关于 z-index 不起作用(图层 “反被” 下层元素 “遮盖”)
除去非正常使用 z-index 问题后,很可能的原因是,被遮盖的元素没有任何视觉层,比如内容层,前景层,背景层等,导致视觉穿透(可能是 DOM 渲染机制导致)