在owa2007里發新郵件,彈出來的選人界面是公司開發的通訊錄選人界面,但由于版本的原因,導致曾經選擇的收件人不能帶入到通訊錄選人界面,第二次選人后會將前一次選擇的人員覆蓋掉,經過研究解決了該問題,下面是解決方法:
1、改造owa里的uglobal.js里的shwAB方法
這個方法是在每次點擊收件人、抄送、密件抄送時調用,在調用后會彈出通訊錄選人界面,功能是將每次選擇的人員的數據保存到寫郵件界面的window對象里,以便下次再傳進選人界面,分了收件人、抄送、密件抄送三中類型,每個用一個數組保存,分別是arrSelectedContact_To、arrSelectedContact_Cc、arrSelectedContact_Bcc,代碼如下:
?? ?var oP=new Object();
?? ?oP.sTo=divTo.innerHTML;
?? ?oP.sCc=divCc.innerHTML;
?? ?oP.sBcc=divBcc.innerHTML;
?? ?oP.sTgt=sTgt;
?? ?oP.objMessage = {};
?? ?switch (sTgt) {
?? ??? ?case 'divTo':
?? ??? ??? ?oP.arrSelectedContact = window.arrSelectedContact_To;
?? ??? ?break;
?? ??? ?case 'divCc':
?? ??? ??? ?oP.arrSelectedContact = window.arrSelectedContact_Cc;
?? ??? ?break;
?? ??? ?case 'divBcc':
?? ??? ??? ?oP.arrSelectedContact = window.arrSelectedContact_Bcc;
?? ??? ?break;
?? ?}
?? ?
?? ?oP.objMessage.addRecipients = function(n, mailList) {
?? ??? ?switch (n)
?? ??? ?{
?? ??? ??? ?case 1:
?? ??? ??? ??? ?oP.sType = 'To';
?? ??? ??? ??? ?oP.sTo = mailList;
?? ??? ??? ?break;
?? ??? ??? ?case 2:
?? ??? ??? ??? ?oP.sType = 'Cc';
?? ??? ??? ??? ?oP.sCc = mailList;
?? ??? ??? ?break;
?? ??? ??? ?case 3:
?? ??? ??? ??? ?oP.sType = 'Bcc';
?? ??? ??? ??? ?oP.sBcc = mailList;
?? ??? ??? ?break;
?? ??? ?}
?? ?}
?? ?oP.objMessage.checkNames = function(n) {
?? ?}
?? ?
?? ?//shwDlg("AddressBook",a_iABW,a_iABH,DLG_MOD|DLG_CTR|DLG_RSZ,oP,"&a="+sA);
?? ?//setRwHtml(divTo,oP.sTo);
?? ?//setRwHtml(divCc,oP.sCc);
?? ?//setRwHtml(divBcc,oP.sBcc);?? ?
?? ?var url = '/owa/ContactForOWA/Contact/SelectUser.htm';
?? ?url = '/OWAContact/Contact/ContactQuerySelectForOWA.aspx';
?? ?//url = 'http://contact.shrcoa.gov.cn/Contact/ContactQuerySelectForOWA.aspx';
?? ?var vRetval = window.showModalDialog(url, oP, "dialogHeight:"+a_iABH+"px;dialogWidth:"+a_iABW+"px;status:no;resizable:no;help:no;");
?? ?if (oP != null && oP.arrSelectedContact != null) {
?? ??? ?
?? ??? ?switch (sTgt) {
?? ??? ?case 'divTo':
?? ??? ??? ?window.arrSelectedContact_To = oP.arrSelectedContact;
?? ??? ?break;
?? ??? ?case 'divCc':
?? ??? ??? ?window.arrSelectedContact_Cc = oP.arrSelectedContact;
?? ??? ?break;
?? ??? ?case 'divBcc':
?? ??? ??? ?window.arrSelectedContact_Bcc = oP.arrSelectedContact;
?? ??? ?break;
?? ?}
?? ?}
?? ?if (oP.sType == 'To')
?? ??? ?setRwHtml(divTo, oP.sTo);
?? ?else if (oP.sType == 'Cc')
?? ??? ?setRwHtml(divCc, oP.sCc);
?? ?else if (oP.sType == 'Bcc');
?? ??? ?setRwHtml(divBcc, oP.sBcc);
?? ?revtRSpn();
?? ?
?? ?if(0<oP.sBcc.length)
?? ??? ?shwBcc(1);
?? ?rslvNms(OP_ANR); //實現檢查姓名
}
2、選人界面傳入進來的前一次選擇的收件人及類別(收件人、抄送、密件抄送),顯示在選人界面里,表示這些是上次所選擇的,頁面時ContactSelect.ascx:
{
?? ?window.setTimeout(sizeDialog,1);
??? var arr = window.dialogArguments;
?? ?
?? ?if( arr != null? && arr.arrSelectedContact)
?? ?{?? ??? ?
?? ??? for( i = 0 ; i < arr.arrSelectedContact.length ; i ++ ){ ?
?? ???? selectContact( arr.arrSelectedContact[i] )? ;?? ?
?? ??? }
?? ?}?? ??? ?
}
function addRec(which) {
???????????? if (window.dialogArguments == null)
???????????????? return;
???????????? var objMessage = window.dialogArguments["objMessage"];
???????????? if (objMessage == null)
???????????????? return;
???????????? var arr = Contact_GetSelectedContacts();
???????????? var mailList = "";
???????????? for (i = 0; i < arr.length; i++) {
???????????????? if (mailList != "") mailList += ";";
???????????????? mailList += arr[i].FullName + "[smtp:" + arr[i].Email1 + "]";
???????????? }
???????????? if (window.dialogArguments && arrContact) {
???????????????? window.dialogArguments.arrSelectedContact = arrContact;
???????????? }
?? ????? ......
}
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
