使用js callback机制实现调用页面局部刷新
需求描述:审批表单页面由我的待办工作中打开,办理完毕后希望关闭该页面并且实现我待办表格的实时刷新;同时该需求也同样适用于从某些工作流管理模块中需要发起审批的情况,比如招聘需求模块中发起录用流程;我的绩效管理中审批绩效等。
我们先来看看之前的实现,该逻辑实现的功能是,从我待办列表中发起审批,审批结束后直接在当前页面,也就是审批页面跳转至一个新的oa主页面,并且打开我的工作-我待办的页签,实现方法如下:
$("#but_back").bind("click", function() { window.top.opener=null; var url = window.location.href; var isoa=url.indexOf('phicomm.com'); //var isoatest=url.indexOf('oatest.phicomm.com'); var curWwwPath=window.document.location.href; var pathName=window.document.location.pathname; var pos=curWwwPath.indexOf(pathName); var localhostPaht=curWwwPath.substring(0,pos); var projectName=pathName.substring(0,pathName.substr(1).indexOf('/')+1); if(isoa>0){ window.top.open(localhostPaht+'/main/index.action?tableName=mywork','_self'); }else{ window.top.open(localhostPaht+projectName+'/main/index.action?tableName=mywork','_self'); } });
桌面js的处理逻辑:
$(document).ready(function($){ // 初始化图标 initModules(initMenus()); refixAppPos(); // 注册事件 regClick(); sortable(); initIcoRemove(); initAppManager(); //解析当前URL判断是否需要跳转制定Table gotoTable(); }); //跳转制定Table function gotoTable(){ var tableName = request("tableName"); if(""!=tableName&&null!=tableName&&'undefined'!=tableName){ openUrl($("#desktop_content_icon_"+tableName)); } }
以上方法虽然实现了办理结束后跳至我的待办的功能,但有以下缺陷:
跳转是在新页面中,并非在调用页面,这样就形成了调用和跳转页面两个相同的桌面;
新的页面并非与原调用页面完全一致,调用页面如打开多个页签,新打开的页面相当于将除我的待办外的其他页签关闭,并不符合用户的需求;
用户体验不友好
我们使用js callback的实现如下,当前页面的调用页面非空且未关闭时,我们就直接调用页面中的js方法实现其局部的刷新。
/** 刷新父窗口关闭弹出窗口 */ function refreshAndClose(){ var jscallback = $.trim($("#jscallback").val()); var type = $.trim($("#type").val()); if (window.opener && !window.opener.closed && jscallback!=null && jscallback!="") { if(!type){ //本页面的调用页面执行其嵌入或调用的js方法 eval("window.opener."+jscallback+"();"); } window.close();//当前页面关闭 } else { window.top.opener=null; var url = window.location.href; var isoa=url.indexOf('phicomm.com'); var curWwwPath=window.document.location.href; var pathName=window.document.location.pathname; var pos=curWwwPath.indexOf(pathName); var localhostPaht=curWwwPath.substring(0,pos); var projectName=pathName.substring(0,pathName.substr(1).indexOf('/')+1); if(isoa>0){ window.top.open(localhostPaht+'/main/index.action?tableName=mywork','_self'); }else{ window.top.open(localhostPaht+projectName+'/main/index.action?tableName=mywork','_self'); } } }
调用页面js:grid即为需要局部刷新的表格。
function openUrl(url){ url=url+"&jscallback=callsus" window.open(url,'_blank'); } function callsus(){ $('#performanceDataGrid').reload(); }
通过js callback实现了调用页面的局部刷新,并对其他应用的类似功能具有一定的指导和参考意义。
更多使用js callback机制实现调用页面局部刷新相关文章请关注PHP中文网!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Artikel membincangkan membuat, menerbitkan, dan mengekalkan perpustakaan JavaScript, memberi tumpuan kepada perancangan, pembangunan, ujian, dokumentasi, dan strategi promosi.

Artikel ini membincangkan strategi untuk mengoptimumkan prestasi JavaScript dalam pelayar, memberi tumpuan kepada mengurangkan masa pelaksanaan dan meminimumkan kesan pada kelajuan beban halaman.

Soalan dan penyelesaian yang sering ditanya untuk percetakan tiket kertas terma depan dalam pembangunan front-end, percetakan tiket adalah keperluan umum. Walau bagaimanapun, banyak pemaju sedang melaksanakan ...

Artikel ini membincangkan debugging JavaScript yang berkesan menggunakan alat pemaju pelayar, memberi tumpuan kepada menetapkan titik putus, menggunakan konsol, dan menganalisis prestasi.

Artikel ini menerangkan cara menggunakan peta sumber untuk debug JavaScript minifikasi dengan memetakannya kembali ke kod asal. Ia membincangkan membolehkan peta sumber, menetapkan titik putus, dan menggunakan alat seperti Chrome Devtools dan Webpack.

Tutorial ini akan menerangkan cara membuat carta pai, cincin, dan gelembung menggunakan carta.js. Sebelum ini, kami telah mempelajari empat jenis carta carta.js: carta baris dan carta bar (tutorial 2), serta carta radar dan carta rantau polar (Tutorial 3). Buat carta pai dan cincin Carta pai dan carta cincin sangat sesuai untuk menunjukkan perkadaran keseluruhan yang dibahagikan kepada bahagian yang berlainan. Sebagai contoh, carta pai boleh digunakan untuk menunjukkan peratusan singa lelaki, singa wanita dan singa muda dalam safari, atau peratusan undi yang diterima oleh calon yang berbeza dalam pilihan raya. Carta pai hanya sesuai untuk membandingkan parameter tunggal atau dataset. Harus diingat bahawa carta pai tidak dapat menarik entiti dengan nilai sifar kerana sudut kipas dalam carta pai bergantung pada saiz berangka titik data. Ini bermaksud mana -mana entiti dengan perkadaran sifar

Tidak ada gaji mutlak untuk pemaju Python dan JavaScript, bergantung kepada kemahiran dan keperluan industri. 1. Python boleh dibayar lebih banyak dalam sains data dan pembelajaran mesin. 2. JavaScript mempunyai permintaan yang besar dalam perkembangan depan dan stack penuh, dan gajinya juga cukup besar. 3. Faktor mempengaruhi termasuk pengalaman, lokasi geografi, saiz syarikat dan kemahiran khusus.

Sebaik sahaja anda telah menguasai tutorial TypeScript peringkat kemasukan, anda harus dapat menulis kod anda sendiri dalam IDE yang menyokong TypeScript dan menyusunnya ke dalam JavaScript. Tutorial ini akan menyelam ke dalam pelbagai jenis data dalam TypeScript. JavaScript mempunyai tujuh jenis data: null, undefined, boolean, nombor, rentetan, simbol (diperkenalkan oleh ES6) dan objek. Typescript mentakrifkan lebih banyak jenis atas dasar ini, dan tutorial ini akan meliputi semuanya secara terperinci. Jenis data null Seperti JavaScript, Null dalam TypeScript
