博主


« 2017年-03月 »
26 27 28 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 27 28 29 30 31 1

分类


热门标签


最新评论


最近留言


最近访客


概要

  • 文章数量: 41
  • 分类数量: 9
  • 标签数量: 73
  • 评论数量: 159
  • 浏览次数: 2813721

友情链接

浏览模式: 描述 | 列表 分类: Javascript

IE中document.createElement的iframe无法设置属性name问题

作者: 我不是鱼 (2009-06-30 13:55)分类: Javascript   标签: iframe name  

iframe 的name可以是link或者form的target,将link或form打开到这个iframe上。
之前在IE遇到过设置不了iframe的name属性

JavaScript代码
  1. var iframe = document.createElement('iframe');   
  2. iframe.name = 'ifr';   
  3. //iframe.setAttribute('name', 'ifr'); //这样也不行  

上面两种方式都无法设置。后来找到原来也可以这样创建

JavaScript代码
  1. var iframe = document.createElement('<iframe name="ifr"></iframe>');  

这样在IE中就没问题了,但这种方式在firefox中是无办法通过的。所以最后

JavaScript代码
  1. try{   
  2.         var iframe = document.createElement('<iframe name="ifr"></iframe>');   
  3.  ...

查看原文评论 (3) | 浏览 (7053)


js数组赋值要注意的问题

作者: 我不是鱼 (2009-06-20 21:24)分类: Javascript   标签: js 数组 引用  

举个例子说明下

JavaScript代码
  1. <script type="text/javascript">   
  2. var pic = thumb = new Array();   
  3. for(var i=0; i<2; i++){   
  4.     pic[pic.length] = i;   
  5.     thumb[thumb.length] = i;   
  6. }   
  7. </script>  

这样赋值后原以为 pic和thumb的值都是 [0, 1]。其实不然,它们两个的值都是[0, 0, 1, 1].
原因是这种复制方式引起的 var pic = thumb = new Array(); js数组是引用传递的。
但如果是字符串,这样:var pic = thumb = ''; 又不会有这个问题。
数组改成这种方式就没有问题了
var pic = new Array(), thumb = new Array();

查看原文评论 (1) | 浏览 (8353)


Dean Edwards 的php版的 JavaScript Packer 压缩JavaScript后无法运行的问题

作者: 我不是鱼 (2009-03-10 18:40)分类: Javascript   标签: JavaScript 压缩  

Dean Edwards 的php版的 JavaScript Packer 是一个非常好用的JavaScript压缩工具。支持几个级别的压缩。不过我用来压缩一些程序后发现跑不起来,未压缩前语法的没问题的,而且换行结束的地方都有分好。压缩后反而语法有错。于是找了一下原因终于发现,原来是一正则出了问题。打开
class.JavaScriptPacker.php
查找

PHP代码
  1. $parser->add('/;+\\s*([};])/''$2');  
注释掉此行,即改成:
PHP代码
  1. //$parser->add('/;+\\s*([};])/', '$2');  

为什么这个会出错呢?举个例子说明一下
JavaScript代码
  1. function aa(){   
  2.     for(var i=0; i<4; bb(i++));   
  3. }  
不注释那一句的话压缩后变成
JavaScript代码
  1. function aa(){for(var i=0; i<4; bb(i++))}   

没有逗号自然就语法出错了。

查看原文评论 (0) | 浏览 (4515)


htmlarea编辑器redo 和 undo 在ie下没反应的解决方法

作者: 我不是鱼 (2009-03-04 12:05)分类: Javascript   标签: htmlarea 编辑器 redo undo  

htmlarea编辑器速度还是挺快的,我比较喜欢用。但htmlarea编辑器的redo 和 undo 在ie下一点反应也没有,但在firefox下正常。原来是ie下默认是关闭了undo功能的。打开htmlarea.js,查找

JavaScript代码
  1. this._customUndo = false;  


改成

JavaScript代码
  1. this._customUndo = true;  


redo,undo就可以用了。

另外如果出现 'HTMLArea.I18N.tooltips' is null or not an object 的错误。则lang下的语言包问题。而且这个错误很无厘头。后来我直接用json_encode把中文全部转成类似于这样的形式 \u9760\u5de6 就好了。

查看原文评论 (2) | 浏览 (4043)


addEventListener 传递 event 参数

作者: 我不是鱼 (2009-03-02 17:23)分类: Javascript   标签: firefox event  

在IE下可以直接用window.event。但FireFox并没有 window.event 。如果要得到 event 对象,就必须要声明时间处理函数的一个参数为 event 。

JavaScript代码
  1. <script type="text/javascript">   
  2. function fun1(e){   
  3.     var ev = window.event || e;   
  4.     alert(ev);   
  5. }   
  6. </script>   
  7.   
  8. <input type="button" id="bt" value="Click me" onclick="fun1(event);" />  

这个例子在ie和Firefox都是可以通过的。

但我们用到addEventListener来绑定事件又如何传递event呢。按照上面的方法

JavaScript代码
  1. <script type="text/javascript">   
  2. funct...

查看原文评论 (3) | 浏览 (7140)


将 tr appendChild 到 table 中的问题

作者: 我不是鱼 (2008-12-15 20:23)分类: Javascript   标签: appendChild 连续添加  

做下载后台的时候,做一个可以添加多个链接的功能。就是只要点击添加就会增加一个链接的输入框。这个功能是比较常用的,比如添加更多附件等等。做法是每次克隆一个tr,然后appendChild到table中。一开始死活没有效果,以为是语法有错。后来查看才知道,table无论有没有tbody,用appendChild都会生成tbody标签。appendChild到table的话,新增加的tr就会在</tbody>和</table>之间。

XML/HTML代码
  1. <TABLE id=link_tb cellSpacing=0 cellPadding=0 width="100%" border=0>  
  2. <TBODY>  
  3. <TR id=link_tr>  
  4. <TD>URL: <INPUT size=55 name=link[url][]> <A style="DISPLAY: none" href="javascript:void(null);">删除&l...

查看原文评论 (0) | 浏览 (4718)


1