解决ie动态修改link样式,import css不刷新的问题

当我们需要动态更新link的样式的时候,通常是直接修改link的 href 属性。但是如果样式里有import的样式表,IE就不会在发起请求去刷新了(其他浏览器都是正常的)

解决办法有两个:
1. 样式表里不要有import的样式表。
2. 把link的type属性设置为空值, 然后再修改 href 的地址,最后再把type值设置成"text/css" 强制让ie解释新的样式表。

查看更多...

Tags: css

分类:Javascript | 固定链接 | 评论: 25 | 引用: 0 | 查看次数: 10756

frames 只是个容器~~~~

我们假设页面上面有个 <iframe name="aa"></iframe> 的Iframe,我们经常使用 frames["aa"] 的方式使来获取到这个 iframe 对象。但是有这样一种情况会导致你无法正确获取

<iframe name="aa"></iframe>
  <SCRIPT LANGUAGE="JavaScript">
  <!--
 function aa(){
  alert("god");
 }
 alert(typeof frames["aa"])
  //-->
  </SCRIPT>

这时我们会发现,我们再通过 frames["aa"]  来获取,就已经不是我们想要的iframe对象了。其实JS脚本引擎在处理这些逻辑的时候是有问题的,这是一种语义上的混淆,让人模糊不清。frames["aa"]  并没有从我们理解的frames集合里面去获取到frame本身,而是去window下获取了一个aa对象。 当程序员不小心把 aa 这个名称用作其他地方。就意味着name的重用,导致脚本错误。

最简单的一个证据 window["aa"] == frames["aa"] 这个是成立的。就算页面上面真的没有iframe 只要有个 aa 对象存在,这个比较也是成立的。

分类:Javascript | 固定链接 | 评论: 15 | 引用: 0 | 查看次数: 6188

Js Tween 在 wii Opera下执行通过

之前写过一个 js tween 的Demo。试试看在wii上面执行起来哈。 以前也测试过小P, 可怜的小P连对基本的DOM都没有支持,哎.

分类:Javascript | 固定链接 | 评论: 2 | 引用: 0 | 查看次数: 3740

被遗忘的四个Javascript正则替换规则

相信玩正则的朋友都知道 正则替换的 $1...$9 属性

但是 $符号除了 1~9 以外还有另外四种组合方式

RegExp.rightContext 属性 ($')
     返回被搜索的字符串中从最后一个匹配位置开始到字符串结尾之间的字符。只读。

RegExp.lastMatch 属性 ($&)
    返回任何正则表达式搜索过程中的最后匹配的字符。只读。

RegExp.leftContext 属性 ($`)
    返回被查找的字符串中从字符串开始位置到最后匹配之前的位置之间的字符。只读。

RegExp.lastParen 属性 ($+)
    如果有的话,返回任何正则表达式查找过程中最后括的子匹配。只读。

在做正则匹配的时候,如果需要正确输出 $ 需要使用 $$ 来输出,否则文本中遇到这些特殊的情况。出来的结果就非预料之中咯。

分类:Javascript | 固定链接 | 评论: 7 | 引用: 0 | 查看次数: 5502

IE8 Beta1 对JScript 的改动

微软在昨天发布了IE8 Beta1,我们来看看微软的JScript团队对javascript引擎做了什么修改把

JScript 优化:
  字符串累加速度优化
  数组join效率优化
  修复了 circular memory leak problem (优化了内存回收模型)

未来将会增加 ECMAscript 3rd 的支持。

查看更多...

分类:Javascript | 固定链接 | 评论: 24 | 引用: 0 | 查看次数: 7397

做一个有趣的测试

测试一下四大浏览器对js和渲染的健壮和速度哈。
出场的有 safari ie7 opera minefield(firefox)

创建10w个div不append到页面的速度(毫秒)
safari: 359 ie:1531 opera:1500 minefield:1400

然后append到body进行渲染
safari: 812 ie:4481 opera:无法alert机器接近崩溃 minefield:5125

但是结果很有趣,虽然safari和ie都能alert出结果,但是他们已经死掉了,系统资源耗尽而死。四个浏览器在处理10W个div渲染只有minefield存活下来了,渲染完成后,CPU降了下来,很不容易。

Tags: fun browser

分类:Javascript | 固定链接 | 评论: 22 | 引用: 0 | 查看次数: 7710

setInterval 和 setTimeout 会产生内存溢出

jscript 5.7 发布修复了不少ie javascript内存泄露的问题。但是leak依然存在。当我们频繁使用 setInterval 和 setTimeout 时就会每几秒钟出现32k leak...



来一个简单的例子。有兴趣的朋友可以自己尝试

function a(){
  document.title = "ok";
  setTimeout(a,0);
}
  setTimeout(a,0);

查看更多...

分类:Javascript | 固定链接 | 评论: 6 | 引用: 0 | 查看次数: 5784

Js Tween 实现

Tween 类是Flash运用广泛的动画类。里面包含了很多动画效果,节省了开发者很多时间在实现复杂动画上面。俺对Tween也一直情有独钟呵呵。 于是简单实现了一个tween。当然俺不是第一个写Tween的,tween的动画算子是采用开源JsTween的算子(都怪俺数学没学好)

http://www.pjhome.net/web/qzoneFrameWorkDemo/tween.html
分类:Javascript | 固定链接 | 评论: 6 | 引用: 0 | 查看次数: 11972

setAttribute 与 class... 冤家哎

假设,我们要使用setAttribute来改变一个dom的class时,应该如何写?
   1. setAttribute("class","red")
   2. setAttribute("className","red")

答案是:

查看更多...

分类:Javascript | 固定链接 | 评论: 5 | 引用: 0 | 查看次数: 4897

Firefox下 透明Flash热点丢失的 bug

Firefox下打开Qzone的导航的按钮焦点就无法点击,经过调试发现,三种情况混在一起使用的时候透明的flash导航的链接就出现异常了。
 
1. margin 设置了0px (一般的dom都默认是0)
2. overflow设置了 hidden, auto, scroll 其中一个
3. flash是设置了透明

查看更多...

Tags: Firefox bug flash

分类:Javascript | 固定链接 | 评论: 9 | 引用: 0 | 查看次数: 7127