简单的JS浏览器兼容问题

« 返回上页作者:乔夫  分类: 网事悠游  日期:2007-7-10 at 4:20  

Firefox 和 IE 之间的兼容性问题实在太烦人,不只是 CSS 样式,还有 Javascript 之间种种的差异,着实让人头疼。这两天就遇到了不少小问题,诸如:“submit()”、“execCommand(“Copy”)”之类的。如果不去考究一番的话,往往会觉得太麻烦了。而事实上,只要作些细微的改动就可以轻松实现兼容了。当然,像“execCommand(“Copy”)”这种要去改动配置的话就没必要了,如此麻烦地去实现一个小小的功能也太过鸡肋不是?

这里来说说最简单的,比如:

document.content.innerHTML = '<br />';

这样的代码在 IE 下是没问题的,而 FF 下只要加上“getElementById”也不会有问题。

document.getElementById('content').innerHTML = '<br />';

再比如“submit()”的问题:

<a href="#" onClick="with(mantype){value='001'};document.mancontent.submit();">删除文章</a>

这段代码,在 FF 下是没法赋值并提交表单的。和上面的同理也需要做些修改:

<script language="javascript" type="text/javascript">
  function ManSubmit( mantype ){ //提交表单内容
    document.getElementById('manarchives').mantype.value = mantype;
    document.getElementById('manarchives').submit(); //manarchives为表单名
  }
</script>
<a href="#" onclick="ManSubmit('001');">删除文章</a>

这样就没啥问题了。

不过,接着再来,又遇到另一个问题。因为这里是删除,所以操作之前要有个确认提示才行。但是这里,如果直接在“onclick”上加“confirm”的话是有问题的:

<a href="#" onclick="return confirm('你确定要删除?');ManSubmit('001');">删除文章</a>

不管位置前后怎么调整,要么是取消了却依然提交,要么就纯粹无反应。所以,不得不再改:

<script language="javascript" type="text/javascript">
  function ManSubmit( mantype ){ //提交表单内容
    if(confirm('你确定要删除?')){
      document.getElementById('manarchives').mantype.value = mantype;
      document.getElementById('manarchives').submit();
      return true;
    }
    return false;
  }
</script>
<a href="#" onclick="ManSubmit('001');">删除文章</a>

OK,功能实现!

后记:这是些很简单的问题,笔录过程于此是因为自己记性差,老犯低级错误,哪怕是同一个问题,再次遇到也常常头大。着重于思路,以致后续,呵呵。。。

更多分享

暂无评论  Trackback Url:http://ichov.com/web/js-jian-rong.html/trackback

有啥说啥 Leave a Reply