<html> <meta charset="utf-8"> <title>套用红头</title> </head> <body onload="getAllTemplelists()"> <script type="text/javascript" src='js/main.js'></script> <div id="search"> <span>关键词:</span> <input id="content" type="text" style="width:245px"> <button type="button" onClick="search()">查询</button> <br /> <br /> </div> <select id="templates" size=5 style='width:360px'> <!--这里ajax动态拉取。--> </select> <br /> <br /> <button type="button" onClick="selectTemplate()">套红头</button> </body> </html> <script> function selectTemplate() { var wpsApp = wps.WpsApplication(); var obj = document.getElementById("templates"); var index = obj.selectedIndex; if (index == -1) { //添加未选中数据时的异常处理 alert("请先选择红头文件后再进行套红头!"); return; } var redId = obj.options[index].getAttribute("value"); var activeDoc = wpsApp.ActiveDocument; var base = wps.PluginStorage.getItem("getRedHeadPath") || OA_DOOR.getRedHeadPath; if (base == undefined) { //未配置则模拟服务端返回 SetDocParamsValue(activeDoc, "insertFileUrl", getDemoTemplatePath()); SetDocParamsValue(activeDoc, "bkInsertFile", "Content"); InsertRedHeadDoc(activeDoc); window.opener = null; window.open('', '_self', ''); window.close(); return } var path = base + redId; SetDocParamsValue(activeDoc, "insertFileUrl", path); InsertRedHeadDoc(activeDoc); window.opener = null; window.open('', '_self', ''); window.close(); } //判断是否是word文档 function isWord(suffix) { var suffixArray = ["doc", "dot", "wps", "wpt", "docx", "docm", "dotm"]; for (var f1 in suffixArray) { if (suffixArray[f1].indexOf(suffix) > -1) { return true; } } return false; } function getAllTemplelists() { var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function () { //当接受到响应时回调该方法 if (xmlhttp.readyState == 4 && (xmlhttp.status == 200 || xmlhttp.status == 0)) { var text = xmlhttp.responseText; //使用接口返回内容,响应内容 var resultJson = JSON.parse(text) //将json字符串转换成对象 for (var i = 0; i < resultJson.length; i++) { var element = resultJson[i] var myOption = document.createElement("option"); //动态创建option标签 var suffix = element.tempName.split('.')[1]; if (isWord(suffix)) { myOption.value = element.tempId; //红头文档id myOption.text = element.tempName; //红头文档名称 templates.add(myOption); } } } } var redHeadsPath = wps.PluginStorage.getItem("redHeadsPath") || OA_DOOR.redHeadsPath if (redHeadsPath == undefined) { //未配置则模拟服务端返回 var strData = '[{"tempId":23,"tempName":"广东省xx局.docx"},{"tempId":24,"tempName":"广东省xx局 - 副本.docx"},{"tempId":25,"tempName":"红头.docx"}]' resultJson = JSON.parse(strData); for (var i = 0; i < resultJson.length; i++) { var element = resultJson[i] var myOption = document.createElement("option"); //动态创建option标签 var suffix = element.tempName.split('.')[1]; if (isWord(suffix)) { myOption.value = element.tempId; //红头文档id myOption.text = element.tempName; //红头文档名称 templates.add(myOption); } } document.getElementById("search").style.display = "none"; return } xmlhttp.open("POST", redHeadsPath, true); //以POST方式请求该接口 xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded;charset=UTF-16LE"); //添加Content-type xmlhttp.send(); //发送请求参数间用&分割 if (!wps.PluginStorage.getItem("searchRedHeadPath")) { document.getElementById("search").style.display = "none"; } } function search() { var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function () { //当接受到响应时回调该方法 if (xmlhttp.readyState == 4 && (xmlhttp.status == 200 || xmlhttp.status == 0)) { var text = xmlhttp.responseText; //使用接口返回内容,响应内容 var resultJson = JSON.parse(text) //将json字符串转换成对象 templates.options.length = 0; for (var i = 0; i < resultJson.length; i++) { var element = resultJson[i] var myOption = document.createElement("option"); //动态创建option标签 myOption.value = element.tempId; //红头文档id myOption.text = element.tempName; //红头文档名称 templates.add(myOption); } } } var searchPath = wps.PluginStorage.getItem("searchRedHeadPath") || OA_DOOR.redHeadsPath var totalPath = searchPath + "?content=" + document.getElementById("content").value; xmlhttp.open("get", totalPath, true); //以POST方式请求该接口 xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded;charset=UTF-16LE"); //添加Content-type xmlhttp.send(); //发送请求参数间用&分割 } </script>