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 }

这样,就可以将因为兼容性而无法显示的内容显示出来了。

原文地址:https://www.cnblogs.com/mandaren/p/3934402.html