1 2 下一页 (Page 1 of 2)
XMLHttpRequest在firefox3中的区别

原来在firefox2以下版本中写XMLHttpRequest读取时,同步和异步请求都是onreadystatechange来设置回调函数,可是到firefox3中,同步请求通过设置onreadystatechange来判断数据是否读取貌似完成没有作用,换回下面方法就没问题了。

在 firefox2 以下版本中,xmlhttp同步/异步读取数据,可以使用下面方法来监测数据是否读取完毕:

  1. transport.onreadystatechange = function () {   
  2.     if (transport.readyState == 4) {   
  3.         if (transport.status == 200) {   
  4.             // do sth   
  5.         } else {   
  6.             // do sth   
  7.         }   
  8.     }   
  9. }  
在 firefox3 中测试时,xmlhttp同步读取数据,设置onreadystatechange不会产生回调。
需要在send方法后这样读取:
  1. transport.send(null);   
  2.        
  3. if (transport.status == 200) {   
  4.     // do sth   
  5. else {   
  6.     // do sth   
  7. }  
Firefox下动态创建form提交时的0x804b00a异常
Component returned failure code: 0x804b00a
[nsIDOMHTMLFormElement.submit]

在Firefox下动态创建form并提交到其它页面时,有时会产生这个异常。
在IE下则没有这个问题。
比如这个:http://www.webdeveloper.com/forum/showthread.php?t=92006

在写这个博客后台的HTML编辑器时,也碰到了这个问题。

0x804b000a is NS_ERROR_MALFORMED_URI. Check whether using an absolute URI for action makes a difference.

解决方法:
看看form的action地址用的是不是相对路径,如果是相对路径,改为http://youdomain.com/action.php形式的完整URL试试。

PS:IMG标签在特定情况下也会出现这种问题。


IE7 & Firefox3

IE6的使命终于快结束了,MS再过几天(2月12日)起将强制推送IE7浏览器。如果不想更新到IE7,可以使用MS官方提供的IE7BlockerToolkit

安装后,打开CMD进入安装目录,敲入IE70Blocker.cmd /B即可屏蔽自动更新IE7,换成/U参数则允许自动更新IE7。

对于IE6的结束,我更希望Firefox3的到来。Firefox3中终于支持模态对话框了,在2中虽然支持模态对话框,但需要特殊设置一些权限。

mozilla developer center上,已经可以看到FF3中支持window.showModalDialog(),window.dialogArguments。

最要命的是在FF2中模拟模态对话框会产生某些RP问题,比如FCKEditor(2.5.1)工具栏的帮助按钮在FF中模拟了模态对话框,但在我机器上运行时,多点几次父窗口,再关闭子窗口,CPU占用率就90%以上。

自己写个window.open,以dialog方式弹出再关闭,CPU占用率也有90%以上。简单页面没有测试,但就算弹出的页面复杂一点,CPU也不要一直飙到90%以上。

Firefox3快来吧!

IE和Firefox下textarea操作方法及取消事件冒泡

之前的留言回复使用tiny_mec做所见即所得编辑器,速度感觉太慢了,于是自己想写个简单的UBB编辑器玩玩,碰到一些问题记这里:

IE和Firefox下取消事件冒泡

  1. function showEmot() {   
  2.     var evt =  || event;   
  3.     if(evt.preventDefault) {   
  4.         // Firefox   
  5.         evt.preventDefault();   
  6.         evt.stopPropagation();   
  7.     } else {   
  8.         // IE   
  9.         evt.cancelBubble=true;   
  10.         evt.returnValue = false;   
  11.     }   
  12. }  

textarea下将一段内容替换鼠标所选文字或插入到当前光标位置

  1. function append() {   
  2.     // sEditorId textarea的ID   
  3.     var eObj = document.getElementById(sEditorId);   
  4.     // ie   
  5.     if (eObj.createTextRange) {   
  6.         eObj.focus();   
  7.         document.selection.createRange().duplicate().text = ;   
  8.     } else {   
  9.         // firefox   
  10.         var iStart = eObj.selectionStart;   
  11.         var iEnd = eObj.selectionEnd;   
  12.         eObj.value = eObj.value.substr(0, iStart) +  + eObj.value.substr(iEnd, eObj.value.length);   
  13.         eObj.focus();   
  14.     }   
  15. }  
firefox中处理字符串形式的xml数据
字符串形式的xml数据(和html合在一起),在IE和FF下都可以用一般的dom标签定位到过去取值。
但在FF中有一个BUG,假如值有时,取出来的值会是:[CDATA[数据]]。
  1. <XMP id=target>     
  2.     <root><node><![CDATA[数据]]></node></root>     
  3. </XMP>    
  1. function getXmlFromString($str) {   
  2.     // 简单用这种方法判断一下是否是IE   
  3.     if (document.all) {   
  4.         var xmlDom = new ActiveXObject("Microsoft.XMLDOM");   
  5.         xmlDom.loadXML($str);   
  6.         return xmlDom;   
  7.     } else {   
  8.         return new DOMParser().parseFromString($str, "text/xml");   
  9.     }   
  10. }   
  11.   
  12. // 此时就可以用像处理xml一样的方法取值了   
  13. var doc = getXmlFromString(document.getElementById("target").innerHTML);   
  14. alert(doc.childNodes[0].childNodes[0].childNodes[0].nodeValue);  
IE,firefox下禁止元素文本被选取的方法

IE下有onselectstart这个方法,通过设置这个方法可以禁止元素文本被选取。而firefox下没有这个方法,但可以通过css或一种变通的办法解决:

  1. if (typeof(element.onselectstart) != "undefined") {       
  2.     // IE下禁止元素被选取       
  3.     element.onselectstart = new Function("return false");       
  4. else {       
  5.     // firefox下禁止元素被选取的变通办法       
  6.     element.onmousedown = new Function("return false");       
  7.     element.onmouseup = new Function("return true");       
  8. }  
或使用CSS:
  1. div {       
  2.     -moz-user-select: none;       
  3. }   
1 2 下一页 (Page 1 of 2)