请问IE和Mozilla脚本特性和CSS的差别

速马 2004-12-23 06:17:08
我属于被IE惯坏的人...

现在开发一个Web控件,大量使用了脚本技术,想支持多种浏览器嗯
这里是暂时发现的几个问题(随时补充),望高手前来解答:

1、table-layout:fixed;
FireFox似乎未支持这种css效果
怎样实现等价效果?

2、event.xxx(比如event.clientX)
FireFox提示:window.event has no properties
怎样得到鼠标的坐标?主要是相对于父级元素的相对坐标和相对页面的绝对坐标两种
还有如何取消事件“冒泡”?

3、children(0)
FireFox提示:xxx.children is not a function
如何得到元素的子元素?

4、innerText、innerHTML
FireFox似乎只支持innerHTML不支持innerText?
...全文
147 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
fason 2004-12-24
  • 打赏
  • 举报
回复
e.target = e.srcElement


e.offsetX == e.layerX
fason 2004-12-24
  • 打赏
  • 举报
回复
addEventListener,removeEventListener in mozilla

我都答了,还不够详细??
速马 2004-12-24
  • 打赏
  • 举报
回复
多谢meizz(梅花雪),第八个问题已经完全解决 :-)

还是关于第二个问题:e(event)没有srcElement属性吧?那么如何得到发生事件的元素呢?
还有,有没有可能得到相对坐标(offsetX)而不是clientX?
meizz 2004-12-24
  • 打赏
  • 举报
回复
if(document.attachEvent)
window.attachEvent("onresize", function(){reinsert();});
else
window.addEventListener('resize', function(){reinsert();}, false);
速马 2004-12-24
  • 打赏
  • 举报
回复
第三个和第六个问题已经完全解决,谢谢孟子在MSN上的帮助
速马 2004-12-24
  • 打赏
  • 举报
回复
8、attachEvent
FireFox除了直接给事件以赋值的形式绑定函数以外,有没有类似attachEvent的办法?需要配合apply和call传入参数
提示:fAttachEvent is not a function
chenxiaohan 2004-12-24
  • 打赏
  • 举报
回复
支持多浏览器,可以看看我的效果 www.xiaohan.org
速马 2004-12-24
  • 打赏
  • 举报
回复
fason果然名不虚传 :-)

除了几个CSS2的问题外,基本都解决了
晚上结贴
fason 2004-12-24
  • 打赏
  • 举报
回复
Opera 和Mozilla一定程序上也会有些区别,这些看经验积累了,有兴趣可以多交流,这方面还是研究了有一点成果
速马 2004-12-23
  • 打赏
  • 举报
回复
嗯第二个问题几乎已经解决了
但是我试验了下clientX可以,而offsetX似乎还是不行(而计算元素的绝对坐标似乎也比较难)
第六个问题...没看懂呢,这个和文本节点有没有被计算关系似乎不大,我这里第一个节点之前没有任何文本,能不能给出示例代码?
孟子E章 2004-12-23
  • 打赏
  • 举报
回复
www.mozilla.org
里面的developer部分应该看可以查到得
fason 2004-12-23
  • 打赏
  • 举报
回复
5.用图片

6.childNodes[0].style为什么取不取我在第三点的描述应该有答案了
fason 2004-12-23
  • 打赏
  • 举报
回复
1.没有,指定宽度后会自动换行(只适用于英文,中文一串会被认为是一个词)
2.ex:

function onkeydownHandler(e){
e = e|| window.event
code = e.which || e.keyCode;
alert(code);
}
document.onkeydown = onkeydownHandler;

3.简单点,children = childNodes,严格上是不等于的,因为文本节点是不计入children,可以用nodeType = 1来判断

4.不支持innerText
用innerHTML.replace(/<[^>]*>/g, "");//只是简单模拟
速马 2004-12-23
  • 打赏
  • 举报
回复
打错了,是解决了第三个问题,第二个还没解决 :-)
速马 2004-12-23
  • 打赏
  • 举报
回复
新发现的两个问题:
5、Marlett字体
FireFox似乎没有支持Marlett字体
如何使用这种字体?不使用url()

6、childNodes[0],style
通过childNodes[0]这样的语法取得的元素,没法直接修改style属性
比如xxx.childNodes[0].style.xx = xx;这样的语句在IE可以运行,在FireFox不行
提示:div.parentNode.childNodes[0].style has no properties
如何解决?

谢谢梅花雪,解决了第二个问题
qrlvls 2004-12-23
  • 打赏
  • 举报
回复
IE 对 CSS 2.0 的支持不完全
meizz 2004-12-23
  • 打赏
  • 举报
回复
www.mozilla.org
meizz 2004-12-23
  • 打赏
  • 举报
回复
3. childNodes[0]
4. 不支持 innerText
速马 2004-12-23
  • 打赏
  • 举报
回复
另外,有没有专门描述这两大系列浏览器差别的文档?
有的话我自己去查嗯..

87,921

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧