昨天又弄了一个HTML,这个HTML是为了出测试报告用的,所以要求对IE和firefox都要支持,所以要用JS对二者进行判断,网上一搜,N多帖子,总体上大家写的都还不错,
代码如下,
window.οnlοad=function(){createlistener();};
function createlistener(){
var trlist = document.getElementsByTagName("tr");
var str = "have finished testing on "+trlist.length + " module test cases";
for (i=0; i< trlist.length; i++){
if (trlist[i].getAttribute("q") == "row") {
var divid = trlist[i].getAttribute("id");
//var item = document.getElementById(divid);
//item.addEventListener("click", function(){showDetails(divid2);}, false);
//obj = event.srcElement ? event.srcElement : event.target;
if(window.ActiveXObject){
document.getElementById(divid).attachEvent("onclick", function(event){
//alert(event.srcElement.parentNode.id);
showDetails1(event.srcElement.parentNode.id+ 'd');
});}
else{
document.getElementById(divid).addEventListener("click", function(event){
//alert(event.currentTarget.id);
showDetails2(event.currentTarget.id + 'd');
}, false);}
}
}
};
function showDetails1(id) {
var rowToDo = document.getElementById(id);
var show = rowToDo.className;
if (show == "rowDetails") {
rowToDo.className = "";
} else {
rowToDo.className="rowDetails";
};
};
function showDetails2(id) {
var rowToDo = document.getElementById(id);
var show = rowToDo.getAttribute("class");
if (show == "rowDetails") {
rowToDo.setAttribute("class", "");
} else {
rowToDo.setAttribute("class", "rowDetails");
};
};
我把IE和FF 不同的实现方式,用蓝色标注出来了,其中 if(window.ActiveXObject)是用来判断是否为IE浏览器的,当然大家如果想判断其他浏览器,比如safari,chromek恶意继续google其判断的方法,呵呵
这是IE和firefox兼容性的帖子,http://www.sj33.cn/jc/wyjc/jsjc/200610/10226.html
这是如何识别不同浏览器的实现代码,http://www.jb51.net/article/27876.htm