chrome 扩展,显示不兼容浏览器的内容
公司的mantis系统使用的时候,用户提交的文件列表为HTML内嵌的XML,但是公司二次开发mantis的时候,html中的js代码只针对ie平台对xml进行解析,导致chrome无法正常显列表。最近刚学会做chrome扩展,所有做了一个扩展把无法显示的内容显示出来。
这个扩展只做2个动作
1、解析html源代码中的XML文件
1 function loadSvnPostList () 2 { 3 try 4 { 5 var xf = document.getElementById("xmlFile") 6 var doc = (new DOMParser()).parseFromString(xf.innerHTML, "text/xml") 7 var lstitem = doc.getElementsByTagName("pathlist"); 8 for (var i = 0; i < lstitem.length; ++i) 9 { 10 var item = lstitem[i]; 11 var arg1=item.getAttribute("index"); 12 var arg2=item.getAttribute("submiter"); 13 14 var arg3=item.getAttribute("datetime"); 15 var arg4=item.getAttribute("path"); 16 var arg5=item.getAttribute("version"); 17 var arg6=item.getAttribute("comment"); 18 //alert(arg6) 19 addTable(arg1,arg2,arg3,arg4,arg5,arg6) 20 } 21 } 22 catch(e) 23 { 24 //alert(e.message); 25 } 26 }
2、将解析出来的内容添加到表格中
1 function addTable(arg1,arg2,arg3,arg4,arg5,arg6) { 2 var table = document.getElementById("PathGrid"); 3 //table.style="word-break:break-all; word-wrap:break-word"; 4 var row = table.insertRow(table.rows.length-1); 5 var cell1 = row.insertCell(0); 6 var cell2 = row.insertCell(1); 7 var cell3 = row.insertCell(2); 8 var cell4 = row.insertCell(3);//path 9 var cell5 = row.insertCell(4); 10 var cell6 = row.insertCell(5); 11 var cell7 = row.insertCell(6); 12 var cell8 = row.insertCell(7); 13 //拆分文件路径 14 var listPath = arg4.split(/[; ]+/i); 15 var sPathWithBr="" 16 for (var i = 0; i < listPath.length; i++) { 17 sPathWithBr+=listPath[i]+"<br/>"; 18 }; 19 20 cell1.innerHTML = arg1; 21 cell2.innerHTML = arg2; 22 cell3.innerHTML = arg3; 23 cell4.style.wordWrap="break-word"; 24 cell4.innerHTML = sPathWithBr;//path 25 cell5.innerHTML = arg5;//version 26 cell6.innerHTML = arg6; 27 28 var sWebSVNUrl = "http://这里是IP地址/websvn/revision.php" ; 29 sWebSVNUrl += "?repname="+ listPath[0] + "&isdir=1&rev=" + arg5 + "&peg="+ arg5; 30 var sViewRepos = "<a href=\"" + sWebSVNUrl + "\" target=\"_blank\" >查看 </a>"; 31 var sDelButton = "<a href=\"javascript:void(0);\" onclick ='DelPathNew(this);'>删除</a>"; 32 cell7.innerHTML = sViewRepos ; 33 cell8.innerHTML = sDelButton; 34 }
这样,就可以将因为兼容性而无法显示的内容显示出来了。