Javascript多种浏览器兼容写法分析第1/3页_javascript技巧

示例代码:
<body>
<table border="1" cellspacing="0" cellpadding="0" id="apple" >
<tbody>
<tr>
<td id="banana" style="color:red" >不吃苹果</td>
</tr>
</tbody>
</table>
</body>

尽量采用W3C DOM 的写法

以前访问对象可能是:
document.all.apple 或者 apple
现在应该采用:
document.getElementById("apple") 以ID来访问对象,且一个ID在页面中必须是唯一的
document.getElementsByTagName("div")[0] 以标签名来访问对象

原来设置对象的属性可能是:
document.all.apple.width=100 或 apple.width=100
现在应该采用:
document.getElementById("apple").setAttribute("width","100")
document.getElementsByTagName("div")[0].setAttribute("width","100")
访问对象的属性则采用:
document.getElementById("apple").getAttribute("width")
document.getElementsByTagName("div")[0].getAttribute("width")

W3C DOM在IE下的一些限制

因为起先的IE占据整个浏览器95%的份额,没有竞争压力,所以这位老大就硬是要玩点另类,不完全按WEB标准来搞。

在IE下不能正确使用setAttribute来设置对象的style、class以及事件响应属性,
因此我还得按原来的点记法来访问和设置,以达到兼容各种浏览器的效果,如:
document.getElementById("banana").class
document.getElementById("banana").style.color
document.getElementById("banana").onclick
document.getElementById("banana").class="fruit"
document.getElementById("banana").style.color="blue"
document.getElementById("banana").onclick= function (){alert("我是香蕉")}

关于Firefox下的onload问题

function over(){
alert("页面加载完毕")
}

正常情况下,我们赋与onload响应函数是:
document.body.onload= over
但是在Firefox下这样无法执行,
所以我们都都采用下面这种形式:
window.onload=over

关于IE下TABLE无法插入新行的问题

IE下TABLE无论是用innerHTML还是appendChild插入<tr>都没有效果,而其他浏览器却显示正常。解决他的方法是,将<tr>加到TABLE的<tbody>元素中,如下面所示:

var row = document.createElement("tr");
var cell = document.createElement("td");
var cell_text = document.createTextNode("香蕉不吃苹果");
cell.appendChild(cell_text);
row.appendChild(cell);
document.getElementsByTagName("tbody")[0].appendChild(row);

当前1/3页 123下一页阅读全文

时间: 2024-09-06 07:42:58

Javascript多种浏览器兼容写法分析第1/3页_javascript技巧的相关文章

Javascript字符串浏览器兼容问题分析_javascript技巧

本文实例分析了Javascript字符串浏览器兼容问题.分享给大家供大家参考.具体分析如下: 先看下不兼容的写法,若我想获取某个字符串的第几位 复制代码 代码如下: var str='aavvvcc'; console.info(str[0]); 这种写法 在IE 7以下的浏览器都不兼容,以下提供浏览器全兼容的方式 复制代码 代码如下: var str='aavvvcc'; console.info(str.charAt(1)); 使用charAt() 就可以获取字符串中某个字符,并且全部兼容.

javascript 跨浏览器开发经验总结(五) js 事件_javascript技巧

简单事件模型和高级事件模型 简单事件模型和高级事件模型简单事件,就是事件与页面元素直观的绑定在一起的形式,如: 复制代码 代码如下: <div onclick="alert(this.innerHTML);"> element.onclick = function(){alert(this.innerHTML);} 只要不是用了个别浏览器独有的事件,一般的click,mouseover事件等在各浏览器中都可以这么使用. 但是当一个事件需要绑定多个监听,或者需要动态注册/移出

IE浏览器兼容Firefox的JS脚本的代码_javascript技巧

1.window.event兼容脚本 2.屏蔽Form提交事件 3.获取事件源 4.添加事件兼容写法 5.Firefox注册innerText写法 6.长度 7.父控件下的子控件 8.XmlHttp 1.window.event兼容脚本 function getEvent(){ //获取浏览器事件,同时兼容ie和ff的写法 if(document.all) return window.event; func=getEvent.caller; while(func!=null){ var arg0

Javascript访问html页面的控件的方法详细分析第1/2页_javascript技巧

下面切入正题:    访问控件的主要对象是:document对象.分别对应当前文档所有的(子对象)个人观点.并且已经提供的几个主要方法来访问对象. 1.       document.getElementById 2.       document.getElementsByName  3           document.getElementsByTagName 4           document.all 下面我主要谈谈以上几个方法的具体用法:   一.首先我来谈谈document.

基于JavaScript判断浏览器到底是关闭还是刷新(超准确)_javascript技巧

本文是小编总结的一些核心内容,个人感觉对大家有所帮助,具体内容请看下文: 页面加载时只执行onload 页面关闭时只执行onunload 页面刷新时先执行onbeforeunload,然后onunload,最后onload. 经过验证我得出的结论是: //对于ie,谷歌,360: //页面加载时只执行onload //页面刷新时,刷新之前执行onbeforeunload事件,在新页面即将替换旧页面时onunload事件,最后onload事件. //页面关闭时,先onbeforeunload事件,

浅谈javascript函数劫持[转自xfocus]第1/3页_javascript技巧

一.概述 javascript函数劫持,也就是老外提到的javascript hijacking技术.最早还是和剑心同学讨论问题时偶然看到的一段代码,大概这样写的: window.alert = function(s) {}; 觉得这种用法很巧妙新颖,和API Hook异曲同工,索性称之为javascript function hook,也就是函数劫持.通过替换js函数的实现来达到劫持这个函数调用的目的,一个完整的hook alert函数例子如下: <!--1.htm--> 复制代码 代码如下

javascript 用局部变量来代替全局变量第1/2页_javascript技巧

为什么要这么做?有什么根据么?不这么做,对性能到底能带来多大的损失?本文就来探讨这些问题的答案,从根本上了解变量的读写性能都和哪些因素有关. 著作权声明        本文译自 Nicholas C. Zakas 于2009年2月10日在个人网站上发表的<JavaScript Variable Performance>.原文是唯一的正式版,本文是经过原作者(Nicholas C. Zakas)授权的简体中文翻译版(Simplified Chinese Translation).译者(明达)在翻

魔鬼字典 JavaScript 笔记 代码比较多乱第1/3页_javascript技巧

//2005中ctrl+J 有可能出提示 //文本编辑出注释的快捷键 名词解释: { //Java: 爪哇语言, 在因特网世界范围的 web 网页运转的以网络为基础的编程语言 (计算机用语) //Script : 手稿, 剧本, 手迹 //cs结构: 客户端应用程序,用户需要下载客户端,例如QQ //BS结构: 浏览器应用程序,具有远程服务器,例如网页 脚本语言:解释性语言,不进行编译,只在运行至相应代码时进行解释 } 完整的JavaScript组成 { 核心:ECMAScript 文档对象模型

HTML与javascript常碰到的编码问题第1/2页_javascript技巧

在这里我简单的谈一下前端HTML与javascript日常工作中常碰到的编码问题.在计算机中,我们储存的信息都是用二进制码表示的.我们认识的.屏幕上显示的英文.汉字等符号和储存用的二进制代码的互相转换,就是编码. 有两个基本概念需要说明,charset 和 character encoding: charset ,字符集,也就是某个符号和某个数字映射关系的一个表,也就是它决定了107 是koubei 的 'a',21475 是口碑的"口",不同的表有不同的映射关系,如 ascii,gb