zoukankan      html  css  js  c++  java
  • 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 }

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

  • 相关阅读:
    工作之余
    用MFC如何高效地绘图
    C++运算符优先级
    CentOS5.9下用Kate
    3G门户网(3G.cn) 招聘 软件测试工程师
    深圳市东润信息咨询有限公司招聘职位: 3G无线产品经理
    广州杰赛科技股份有限公司 招聘 技术中心3G协议软件工程师
    3G门户网(3G.cn) 招聘 手机游戏开发工程师
    3G门户网(3G.cn) 招聘 技术支持工程师
    3G工程师:三大热门的3G职业资格培训认证
  • 原文地址:https://www.cnblogs.com/mandaren/p/3934402.html
Copyright © 2011-2022 走看看