Jun 09, 2008
原来在firefox2以下版本中写XMLHttpRequest读取时,同步和异步请求都是onreadystatechange来设置回调函数,可是到firefox3中,同步请求通过设置onreadystatechange来判断数据是否读取貌似完成没有作用,换回下面方法就没问题了。
在 firefox2 以下版本中,xmlhttp同步/异步读取数据,可以使用下面方法来监测数据是否读取完毕:
- transport.onreadystatechange = function () {
- if (transport.readyState == 4) {
- if (transport.status == 200) {
-
- } else {
-
- }
- }
- }
在 firefox3 中测试时,xmlhttp
同步读取数据,设置onreadystatechange不会产生回调。
需要在send方法后这样读取:
- transport.send(null);
-
- if (transport.status == 200) {
-
- } else {
-
- }
Apr 11, 2008
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标签在特定情况下也会出现这种问题。
Feb 09, 2008
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快来吧!
Mar 07, 2007
之前的留言回复使用tiny_mec做所见即所得编辑器,速度感觉太慢了,于是自己想写个简单的UBB编辑器玩玩,碰到一些问题记这里:
IE和Firefox下取消事件冒泡
- function showEmot() {
- var evt = || event;
- if(evt.preventDefault) {
-
- evt.preventDefault();
- evt.stopPropagation();
- } else {
-
- evt.cancelBubble=true;
- evt.returnValue = false;
- }
- }
textarea下将一段内容替换鼠标所选文字或插入到当前光标位置
- function append() {
-
- var eObj = document.getElementById(sEditorId);
-
- if (eObj.createTextRange) {
- eObj.focus();
- document.selection.createRange().duplicate().text = ;
- } else {
-
- var iStart = eObj.selectionStart;
- var iEnd = eObj.selectionEnd;
- eObj.value = eObj.value.substr(0, iStart) + + eObj.value.substr(iEnd, eObj.value.length);
- eObj.focus();
- }
- }
Jan 20, 2007
字符串形式的xml数据(和html合在一起),在IE和FF下都可以用一般的dom标签定位到过去取值。
但在FF中有一个BUG,假如值有时,取出来的值会是:[CDATA[数据]]。
- <XMP id=target>
- <root><node><![CDATA[数据]]></node></root>
- </XMP>
- function getXmlFromString($str) {
-
- if (document.all) {
- var xmlDom = new ActiveXObject("Microsoft.XMLDOM");
- xmlDom.loadXML($str);
- return xmlDom;
- } else {
- return new DOMParser().parseFromString($str, "text/xml");
- }
- }
-
-
- var doc = getXmlFromString(document.getElementById("target").innerHTML);
- alert(doc.childNodes[0].childNodes[0].childNodes[0].nodeValue);
Jan 19, 2007
IE下有onselectstart这个方法,通过设置这个方法可以禁止元素文本被选取。而firefox下没有这个方法,但可以通过css或一种变通的办法解决:
- if (typeof(element.onselectstart) != "undefined") {
-
- element.onselectstart = new Function("return false");
- } else {
-
- element.onmousedown = new Function("return false");
- element.onmouseup = new Function("return true");
- }
或使用CSS:
- div {
- -moz-user-select: none;
- }