Skip to content

Instantly share code, notes, and snippets.

@timnew
Last active March 20, 2016 14:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save timnew/90d095e2afb4d9b806f3 to your computer and use it in GitHub Desktop.
Save timnew/90d095e2afb4d9b806f3 to your computer and use it in GitHub Desktop.
职称资格考试浏览器兼容性脚本

http://ccatmc.com.cn/whb/cms/

  1. 登录页,需要干掉验证脚本
  2. 主页面需要去掉Frameset,单独打开iFrame
  3. 覆写报名页的脚本,修复各种兼容性问题
  4. 复写弹出页的脚本,填写完成后,读取 Console 中的 window.returnResult
  5. 报名页中调用 renderSubject(returnResult)
  6. 打印页没有savePdf脚本,直接打开iframe并保存为pdf
var getById = null
if(getById == null) {
getById = document.getElementById.bind(document);
document.getElementById=function(id){
var obj=getById(id);
if(!obj){
var nameObjs= document.getElementsByName(id);
if(nameObjs && nameObjs.length>0){
return nameObjs[0];
}
}
return obj;
}
}
function getSubJbList(){
var kmcode = document.getElementById("preenrollmentDTO.preenrollment.kmcode").value;
var date = new Date();
$.ajax({
url:"preEnrollmentWhAction.do?method=getJbListByKmCode",
data :{kmcode:kmcode,dateStr:date+""},
dataType:"json",
method:"POST",
success:function (data) {
var opt;
opt = "<option value=''>--请选择--</option>";
for(i=0;i<data.length;i++){
opt += "<option value='"+data[i].jbid+"'>"+data[i].jbname+"</option>";
}
$("select[name='preenrollmentDTO.preenrollment.subJiBieId']").empty();
$("select[name='preenrollmentDTO.preenrollment.subJiBieId']").append(opt);
},
error : function(dt) {
alert("获取数据有误!"+dt);
}
});
}
function showRegister(){
var kmcode = document.getElementById("preenrollmentDTO.preenrollment.kmcode").value;
var subJbId = document.getElementById("preenrollmentDTO.preenrollment.subJiBieId").value;
if(subJbId == null || subJbId == ''){
document.getElementById("register").innerHTML = '';
return false;
}
var date = new Date();
$.ajax({
url:"preEnrollmentWhAction.do?method=getRegisterInfo",
data :{kmcode:kmcode,subJbId:subJbId,dateStr:date+""},
dataType:"json",
method:"POST",
success:function (data) {
var list = data.list;
var showflag = data.showflag;
if('true' == showflag){
document.getElementById("spanshow").style.display="";
}else{
document.getElementById("spanshow").style.display="none";
}
document.getElementById("register").innerHTML = "";
var str = "";
for(i=0;i<list.length;i++){ //测试费(xx元)、培训费(xx元)、教材费(xx元)
str += "<label><input type=\"checkbox\" name=\"preenrollmentDTO.preenrollment.subjectArray\" ";
var amounttype = list[i].amounttype;
if(amounttype == 1){ //测试费(默认勾选 ,且不可取消)
str += "checked='true' disabled='true' ";
}
if(kmcode == 4 || kmcode == 5 || kmcode == 6){
str += "disabled='true'"
}
str += "value='" + list[i].subKmId + "'/><span id='subjectArrayName" + i + "'>" + list[i].subKmName + "&nbsp;</span></label>&nbsp;";
}
document.getElementById("register").innerHTML = str;
},
error : function(dt) {
alert("获取数据有误!"+dt);
}
});
}
function saveAddSubKm(){
var subKm = document.getElementById("preenrollmentDTO.preenrollment.kmcode");
var subKmName = subKm.options[subKm.selectedIndex].text;
if(subKm.value == null || subKm.value == ''){
alert("请输入报考科目!");
subKm.focus();
return;
}
var subJb = document.getElementById("preenrollmentDTO.preenrollment.subJiBieId");
var subJbName = subJb.options[subJb.selectedIndex].text;
if(subJb.value == null || subJb.value == ''){
alert("请输入报考级别!");
subJb.focus();
return;
}
var subjectArrayName = subKmName + "【" + subJbName + "】&nbsp;"+ "|";
var result = new Array;
try{
var subjectArrayObj = document.getElementsByName("preenrollmentDTO.preenrollment.subjectArray");
var subjectArrayStr = '';
for(var i = 0;i < subjectArrayObj.length;i ++ ){
subjectArrayStr += subjectArrayObj[i].checked + ',';
if(subjectArrayObj[i].checked == true){
subjectArrayName += document.getElementById("subjectArrayName" + i).innerHTML+",";
}else{
subjectArrayName += ",";
}
}
subjectArrayStr = subjectArrayStr.substr(0,subjectArrayStr.length - 1);
subjectArrayName = subjectArrayName.substring(0,subjectArrayName.length - 1);
result[0] = true;
result[1] = subjectArrayObj[0].value; //科目Id
result[2] = subjectArrayStr; //报考项(true or false)
result[3] = subjectArrayName; //报考项名称
}catch(e){
result[0] = false;
result[1] = e.message;
}
var date = new Date();
var subjectStr = document.getElementById("preenrollmentDTO.preenrollment.subjectStr").value;
$.ajax({
url:"preEnrollmentWhAction.do?method=checkAddSubKm",
data :{subjectStr:subjectStr,subKmId:result[1],subModKmId:subModKmId,dateStr:date+""},
dataType:"json",
method:"POST",
success:function (data) {
var state = data.state;
var remark = data.remark;
if(state){
window.returnValue=result;
console.log(result)
// window.close();
}else{
alert(remark);
}
},
error : function(dt) {
alert("获取数据有误!"+dt);
}
});
}
function cancelAddSubKm(){
// window.close();
}
// //新增还是修改标识
// if (isNew == "true") { //新增
// initNew();
// } else if (isNew == "false") { //修改
// initModify();
// } else { //无效
// alert("系统异常,请重试!");
// }
//
// var _subjectIdStrs = '';
// var _subjectArrayStrs = '';
// var _subjectArrayNames = ''
// //初始化科目信息
// initSubKm();
function _submit() {
// if (!baseValidate()) {
// return false;
// }
// if (!doValidate(document.forms[0])) {
// return false;
// }
var subjectStr = subject.join(',');
var subjectArrayStr = subjectArrayStrs.join(',');
if (isNew == "false") { //修改
var msg = "信息发生变动,请提交后重新打印报名表并交由您工作单位审核。";
if (!checkModify()){
//基本信息未变动,校验是否修改报考科目发生改动
if(subjectStr != oldSubjectStr || subjectArrayStr != oldSubjectArrayStr){
alert(msg);
}
}else{
alert(msg);
}
}
var name = document.getElementById("preenrollmentDTO.preenrollment.name").value;
var cardtype = document.getElementById("preenrollmentDTO.preenrollment.cardtype").value;
var cardno = document.getElementById("preenrollmentDTO.preenrollment.cardno").value;
var nowTitle = document.getElementById("preenrollmentDTO.preExtWh_zhicheng.nowTitle").value;
document.getElementById("preenrollmentDTO.preenrollment.compType").value = "1";
var mydata;
Ext.Ajax.timeout = 30000;// 设置超时时间30秒
Ext.Ajax.request({url:"preEnrollmentWhAction.do?method=checkSubject",
params :{subjectStr:subjectStr,subjectArrayStr:subjectArrayStr,nowTitle:nowTitle},
method:"POST",
success:function (request) {
var txt =request.responseText;
try{
mydata = eval(txt);
mydata = mydata[0];
}catch(exception){
alert(exception);
return false;
}
if(mydata.result != 'success'){
alert(mydata.result);
}else{
Ext.Ajax.timeout = 30000;// 设置超时时间30秒
Ext.Ajax.request({url:"preEnrollmentWhAction.do?method=checkCommonInfo&name="+name,
params :{cardtype:cardtype,cardno:cardno},
async:false,
method:"POST",
success:function (request) {
var txt =request.responseText;
try{
mydata = eval(txt);
mydata = mydata[0];
}catch(exception){
alert(exception);
return false;
}
if(mydata.result != 'success'){
alert(mydata.result);
return false;
}else{
document.forms[0].action="preEnrollmentWhAction.do?method=saveNew&subjectStr="+subjectStr+"&subjectArrayStr="+subjectArrayStr;
try{
document.forms[0].submit();
document.getElementById("submitBtn").disabled = true;
}catch(ex){ //异常处理
if(ex.number == -2147024891 && ex.name == "TypeError"){
alert("图片路径不存在,请检查!");
}else{
alert("系统异常,请联系管理员:" + ex.description);
throw ex ;
}
return false;
}
return true;
}
},
error:function (da) {
alert("校验报考类型出错!" + da);
return false;
}
})
}
},error:function () {
alert("数据传输出错!");
return false;
}
})
}
function changeOrgNameRemark(){
var os = document.forms[0]["preenrollmentDTO.preExtWh_zhicheng.orgnameId"];
var orgname = os.options[os.selectedIndex].text;
if(orgname != '其他'){
document.getElementById("preenrollmentDTO.preExtWh_zhicheng.orgnameRemark").value = '';
document.getElementById("preenrollmentDTO.preExtWh_zhicheng.orgnameRemark").disabled=true;
}else{
document.getElementById("preenrollmentDTO.preExtWh_zhicheng.orgnameRemark").disabled=false;
}
}
/**
* 对单位名称的校验
* @returns {Boolean}
*/
function checkOrgName(){
var os = document.forms[0]["preenrollmentDTO.preExtWh_zhicheng.orgnameId"];
var orgname = os.options[os.selectedIndex].text;
var orgnameRemark = document.getElementById("preenrollmentDTO.preExtWh_zhicheng.orgnameRemark").value;
if(orgname == '其他' && (orgnameRemark == '' || orgnameRemark == null)){
alert("工作单位选择“其他”时,工作单位备注必须填写!");
return false;
}
return true;
}
var getById = null
if(getById == null) {
getById = document.getElementById.bind(document);
document.getElementById=function(id){
var obj=getById(id);
if(!obj){
var nameObjs= document.getElementsByName(id);
if(nameObjs && nameObjs.length>0){
return nameObjs[0];
}
}
return obj;
}
}
function renderSubject(returnValue) {
var flag = returnValue[0];
if(flag){
var subKmId = returnValue[1];
var subjectArrayStr = returnValue[2];
var subjectArrayName = returnValue[3];
var count = subject.length;
subject[count] = subKmId;
subjectArrayStrs[count] = subjectArrayStr;
subjectArrayNames[count] = subjectArrayName;
//更新显示
var str = document.getElementById("register").innerHTML;
if(str != ''){
str += "<br>";
}
var subjectArrays = subjectArrayName.split('|',2);
var subjectArrayNameArray = subjectArrays[1].split(',',3);
document.getElementById("register").innerHTML = str + "<span style='padding-left: 5px;float: left;width: 130px'>" + subjectArrays[0] + "</span>"+
"<span style='padding-left: 5px;float: left;width: 130px'>" + subjectArrayNameArray[0] + "</span>" +
"<span style='float: left;padding-left: 5px; width: 130px'>" + subjectArrayNameArray[1] + "</span>" +
"<span style='float: left;padding-left: 5px; width: 130px'>" + subjectArrayNameArray[2] + "</span>" +
"<span style='padding-right: 250px; float: right'><a href=\"#\" onclick='modifySubKm(" + count + ");'>修改</a>&nbsp;|&nbsp;&nbsp;" +
"<a href=\"#\" onclick='delSubKm(" + count + ");'>删除</a></span>";
}else{
alert(returnValue[1]);
}
}
//新增报考科目
function addSubKm(){
var dateStr = new Date();
var url = "preEnrollmentWhAction.do?method=addSubKm&subjectstr=" + subject + "&dateStr=" + dateStr;
var returnValue = window.open(url, 'window', "dialogHeight:180px;dialogWidth:600px;center:yes;help:no;resizable:no;status:no;scroll:no;edge:sunken");
// if(returnValue != undefined && returnValue != null){
// var flag = returnValue[0];
// if(flag){
// var subKmId = returnValue[1];
// var subjectArrayStr = returnValue[2];
// var subjectArrayName = returnValue[3];
// var count = subject.length;
// subject[count] = subKmId;
// subjectArrayStrs[count] = subjectArrayStr;
// subjectArrayNames[count] = subjectArrayName;
// //更新显示
// var str = document.getElementById("register").innerHTML;
// if(str != ''){
// str += "<br>";
// }
// var subjectArrays = subjectArrayName.split('|',2);
// var subjectArrayNameArray = subjectArrays[1].split(',',3);
// document.getElementById("register").innerHTML = str + "<span style='padding-left: 5px;float: left;width: 130px'>" + subjectArrays[0] + "</span>"+
// "<span style='padding-left: 5px;float: left;width: 130px'>" + subjectArrayNameArray[0] + "</span>" +
// "<span style='float: left;padding-left: 5px; width: 130px'>" + subjectArrayNameArray[1] + "</span>" +
// "<span style='float: left;padding-left: 5px; width: 130px'>" + subjectArrayNameArray[2] + "</span>" +
// "<span style='padding-right: 250px; float: right'><a href=\"#\" onclick='modifySubKm(" + count + ");'>修改</a>&nbsp;|&nbsp;&nbsp;" +
// "<a href=\"#\" onclick='delSubKm(" + count + ");'>删除</a></span>";
// }else{
// alert(returnValue[1]);
// }
// }
}
//修改报考科目
function modifySubKm(num){
var subKmId = subject[num];
var subjectArray = subjectArrayStrs[num];
var dateStr = new Date();
var url = "preEnrollmentWhAction.do?method=modifySubKm&subKmId="+subKmId+"&subjectArray="+subjectArray+"&subjectstr=" + subject + "&dateStr=" + dateStr;
var returnValue = window.open(url, 'window', "dialogHeight:180px;dialogWidth:600px;center:yes;help:no;resizable:no;status:no;scroll:no;edge:sunken");
if(returnValue != undefined && returnValue != null){
var flag = returnValue[0];
if(flag){
subKmId = returnValue[1];
var subjectArrayStr = returnValue[2];
var subjectArrayName = returnValue[3];
var str = '';
for(var i=0;i<subject.length;i++){
if(i < num || i > num){ //更新显示
var subjectArrays = subjectArrayNames[i].split('|',2);
var subjectArrayNameArray = subjectArrays[1].split(',',3);
str += "<span style='padding-left: 5px;float: left;width: 130px'>" + subjectArrays[0] + "</span>"+
"<span style='padding-left: 5px;float: left;width: 130px'>" + subjectArrayNameArray[0] + "</span>" +
"<span style='float: left;padding-left: 5px; width: 130px'>" + subjectArrayNameArray[1] + "</span>" +
"<span style='float: left;padding-left: 5px; width: 130px'>" + subjectArrayNameArray[2] + "</span>" +
"<span style='padding-right: 250px; float: right'><a href=\"#\" onclick='modifySubKm(" + i + ");'>修改</a>&nbsp;|&nbsp;&nbsp;" +
"<a href=\"#\" onclick='delSubKm(" + i + ");'>删除</a></span>";
}else if( i == num){ //更新显示 、 更新数据
subject[num] = subKmId;
subjectArrayStrs[num] = subjectArrayStr;
subjectArrayNames[num] = subjectArrayName;
var subjectArrays = subjectArrayName.split('|',2);
var subjectArrayNameArray = subjectArrays[1].split(',',3);
str += "<span style='padding-left: 5px;float: left;width: 130px'>" + subjectArrays[0] + "</span>"+
"<span style='padding-left: 5px;float: left;width: 130px'>" + subjectArrayNameArray[0] + "</span>" +
"<span style='float: left;padding-left: 5px; width: 130px'>" + subjectArrayNameArray[1] + "</span>" +
"<span style='float: left;padding-left: 5px; width: 130px'>" + subjectArrayNameArray[2] + "</span>" +
"<span style='padding-right: 250px; float: right'><a href=\"#\" onclick='modifySubKm(" + num + ");'>修改</a>&nbsp;|&nbsp;&nbsp;" +
"<a href=\"#\" onclick='delSubKm(" + num + ");'>删除</a></span>";
}
if((i + 1) < subject.length){
str += "<br>";
}
}
document.getElementById("register").innerHTML = str;
}else{
alert(returnValue[1]);
}
}
}
//删除报考科目
function delSubKm(num){
if(confirm("是否确认执行删除操作?")){
var str = '';
var array = subject;
var arrayStrs = subjectArrayStrs;
var arrayNames = subjectArrayNames
subject = new Array;
subjectArrayStrs = new Array;
subjectArrayNames = new Array;
for(var i=0;i<array.length;i++){
var subjectArrays = arrayNames[i].split('|',2);
var subjectArrayNameArray = subjectArrays[1].split(',',3);
if(i < num){
subject[i] = array[i];
subjectArrayStrs[i] = arrayStrs[i];
subjectArrayNames[i] = arrayNames[i];
str += "<span style='padding-left: 5px;float: left;width: 130px'>" + subjectArrays[0] + "</span>"+
"<span style='padding-left: 5px;float: left;width: 130px'>" + subjectArrayNameArray[0] + "</span>" +
"<span style='float: left;padding-left: 5px; width: 130px'>" + subjectArrayNameArray[1] + "</span>" +
"<span style='float: left;padding-left: 5px; width: 130px'>" + subjectArrayNameArray[2] + "</span>" +
"<span style='padding-right: 250px; float: right'><a href=\"#\" onclick='modifySubKm(" + i + ");'>修改</a>&nbsp;|&nbsp;&nbsp;" +
"<a href=\"#\" onclick='delSubKm(" + i + ");'>删除</a></span>";
}else if( i > num){
subject[i - 1] = array[i];
subjectArrayStrs[i - 1] = arrayStrs[i];
subjectArrayNames[i - 1] = arrayNames[i];
str += "<span style='padding-left: 5px;float: left;width: 130px'>" + subjectArrays[0] + "</span>"+
"<span style='padding-left: 5px;float: left;width: 130px'>" + subjectArrayNameArray[0] + "</span>" +
"<span style='float: left;padding-left: 5px; width: 130px'>" + subjectArrayNameArray[1] + "</span>" +
"<span style='float: left;padding-left: 5px; width: 130px'>" + subjectArrayNameArray[2] + "</span>" +
"<span style='padding-right: 250px; float: right'><a href=\"#\" onclick='modifySubKm(" + (i - 1) + ");'>修改</a>&nbsp;|&nbsp;&nbsp;"+
"<a href=\"#\" onclick='delSubKm(" + (i - 1) + ");'>删除</a></span>";
}
if(i != num && (i + 1) < array.length && !((num + 1) == array.length && (i + 2) == array.length)){
str += "<br>";
}
}
document.getElementById("register").innerHTML = str;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment