dzxstatic
Version:
The static files of Discuz! X
1 lines • 4.17 kB
JavaScript
void 0!==EXTRAFUNC.keydown&&(EXTRAFUNC.keydown.at="extrafunc_atMenu",EXTRAFUNC.keyup.at="extrafunc_atMenuKeyUp",EXTRAFUNC.showEditorMenu.at="extrafunc_atListMenu");var atKeywords=null,keyMenuObj=null,atResult=[],curatli=0,atliclass="",atsubmitid="",atkeypress=0;function extrafunc_atMenu(){BROWSER.opera||(wysiwyg&&EXTRAEVENT.shiftKey&&50==EXTRAEVENT.keyCode&&postaction&&("newthread"==postaction||"reply"==postaction||"edit"==postaction)&&(keyMenu("@",atMenu),ctlent_enable[13]=0,doane(EXTRAEVENT),atkeypress=1),!$("at_menu")||""!=$("at_menu").style.display||38!=EXTRAEVENT.keyCode&&40!=EXTRAEVENT.keyCode&&13!=EXTRAEVENT.keyCode||doane(EXTRAEVENT))}function extrafunc_atMenuKeyUp(){BROWSER.opera||(wysiwyg&&EXTRAEVENT.shiftKey&&50==EXTRAEVENT.keyCode&&postaction&&("newthread"==postaction||"reply"==postaction||"edit"==postaction)&&!atkeypress&&(keyBackspace(),keyMenu("@",atMenu),ctlent_enable[13]=0,doane(EXTRAEVENT)),wysiwyg&&$("at_menu")&&""==$("at_menu").style.display&&postaction&&("newthread"==postaction||"reply"==postaction||"edit"==postaction)&&(32==EXTRAEVENT.keyCode||9==EXTRAEVENT.keyCode||8==EXTRAEVENT.keyCode&&!keyMenuObj.innerHTML.substr(1).length?($("at_menu").style.display="none",ctlent_enable[13]=1):atFilter(keyMenuObj.innerHTML.substr(1),"at_menu","atMenuSet",EXTRAEVENT)),atkeypress=0)}function extrafunc_atListMenu(e,t){return"at"==e&&(t?($("atkeyword").value?(str="@"+$("atkeyword").value+(wysiwyg?" ":" "),insertText(str,strlen(str),0,!0,EXTRASEL)):insertText("",0,0,!0,EXTRASEL),checkFocus(),!0):($("at_menu")&&($("at_menu").style.display="none",ctlent_enable[13]=1),curatli=0,setTimeout((function(){atFilter("","at_list","atListSet"),$("atkeyword").focus()}),100),'请输用户名:<br /><input type="text" id="atkeyword" style="width:240px" value="" class="px" onkeydown="atEnter(event, \'atListSet\')" onkeyup="atFilter(this.value, \'at_list\',\'atListSet\',event, true);" /><div class="p_pop" id="at_list" style="width:250px;"><ul><li>@朋友账号,就能提醒他来看帖子</li></ul></div>'))}function atMenu(e,t){$("at_menu")||(div=document.createElement("div"),div.id="at_menu",document.body.appendChild(div),div.style.position="absolute",div.className="p_pop",div.style.zIndex="100000"),$("at_menu").style.marginTop=keyMenuObj.offsetHeight+2+"px",$("at_menu").style.marginLeft=keyMenuObj.offsetWidth+2+"px",$("at_menu").style.left=e+"px",$("at_menu").style.top=t+"px",$("at_menu").style.display="",$("at_menu").innerHTML='<img src="'+IMGDIR+'/loading.gif" class="vm"> 请稍候... '}function atSearch(kw,call){if(null===atKeywords){atKeywords="";var x=new Ajax;x.get("misc.php?mod=getatuser&inajax=1",(function(s){s&&(atKeywords=s.split(",")),call&&("function"==typeof call?call():eval(call))}))}var lsi=0;for(i in atKeywords)if((-1!==atKeywords[i].indexOf(kw)||""===kw)&&(atResult[lsi]=""!==kw?atKeywords[i].replace(kw,"<b>"+kw+"</b>"):atKeywords[i],lsi++,lsi>10))break;kw&&!lsi&&(curatli=-1)}function atEnter(e,call){if(e){if(38==e.keyCode&&curatli>0)return curatli--,!1;if(40==e.keyCode&&curatli<atResult.length-1)return curatli++,!1;if(13==e.keyCode){var call=call||"insertText";return curatli>-1&&eval(call+"($('atli_"+curatli+"').innerText)"),hideMenu(),doane(e),!0}}return!1}function atFilter(e,t,a,n,l){l=l||!1;if(atResult=[],atSearch(e,(function(){atFilter(e,t,a)})),l||!atEnter(n,a)){var s="";if(atResult.length){for(i in $(t).style.visibility="visible",atResult){var u=i==curatli?' class="a"':"";s+='<li><a href="javascript:;" id="atli_'+i+'"'+u+' onclick="'+a+'(this.innerText)">'+atResult[i]+"</a></li>"}$(t).innerHTML="<ul>"+s+'<li class="xg1">@朋友账号,就能提醒他来看帖子</li></ul>'}else $(t).style.visibility="hidden"}}function atListSet(e){$("atkeyword").value=e,atsubmitid?$(atsubmitid).click():$(editorid+"_at_submit").click()}function atMenuSet(e){if(keyMenuObj.innerHTML="@"+e+(wysiwyg?" ":" "),$("at_menu").style.display="none",ctlent_enable[13]=1,curatli=0,BROWSER.firefox){var t=editwin.getSelection(),a=t.getRangeAt(0),n=keyMenuObj.firstChild;a.setStart(n,keyMenuObj.innerHTML.length-5),a.setEnd(n,keyMenuObj.innerHTML.length-5),t.removeAllRanges(),t.addRange(a)}checkFocus()}