📄 ipb_forum.js.htm.svn-base
字号:
//------------------------------------------// Invision Power Board v2.1// Forums JS File// (c) 2005 Invision Power Services, Inc.//// //------------------------------------------/*--------------------------------------------*/// INIT/*--------------------------------------------*/var topic_dates = {};var topic_flags = {};var topic_state = {};var forum_mark_time;var newer_topics = new Array;var newer_count = 0;var flags_count = 0;var forum_id;var url_extra = '';var start_int = 0;var forum_mark_sent = 0;var span_html = new Array;var desc_html = new Array;var text_html = new Array;var folders = new Array;var _desc_clicked = 0;var topic_links_init = 0;var _this_select_all = 0;var tid_date = new Array();var click_delay = 1200; //microseconds (1.2 seconds)/*--------------------------------------------*/// Pop up mod options/*--------------------------------------------*/function forum_mod_pop( fid ){ try { menu_action_close(); } catch(e) { } PopUp( ipb_var_base_url + 'act=mod&CODE=prune_start&f='+fid+'&auth_key='+ipb_md5_check, 'PRUNE', 600,500);}/*--------------------------------------------*/// INIT topic links.../*--------------------------------------------*/function forum_init_topic_links(){ //---------------------------------- // Get page links... // Gah.. another safari bug //---------------------------------- var pagelinks = document.getElementsByTagName('a'); //---------------------------------- // Sort through and grab topic links //---------------------------------- for ( var i = 0 ; i <= pagelinks.length ; i++ ) { try { if ( ! pagelinks[i].id ) { continue; } } catch(e) { continue; } var linkid = pagelinks[i].id; var linkname = linkid.replace( /^(.*)-(\d+)$/, "$1" ); if ( linkname == 'tid-link' ) { pagelinks[i].onmousedown = topic_link_event_mousedown; pagelinks[i].onmouseup = topic_link_event_mouseup; //pagelinks[i].style.cursor = 'text'; if ( ! topic_links_init ) { pagelinks[i].title = pagelinks[i].title + '. ' + lang_clickhold; } } } topic_links_init = 1;}/*--------------------------------------------*/// Mousedown, start timer/*--------------------------------------------*/function topic_link_event_mousedown( event ){ //---------------------------------- // Prevent link loading //---------------------------------- event = global_cancel_bubble( event, true ); //---------------------------------- // Get TID //---------------------------------- var tid = _get_tid_from_id( this.id ); //---------------------------------- // Start... //---------------------------------- tid_date[ tid ] = _get_time_now(); //---------------------------------- // Start loop //---------------------------------- setTimeout( "topic_link_event_timer("+tid+")", 5 );}/*--------------------------------------------*/// Event, loop/*--------------------------------------------*/function topic_link_event_timer( tid ){ //---------------------------------- // Get time now //---------------------------------- var timenow = _get_time_now(); //---------------------------------- // Click held for 1.5 s+? //---------------------------------- if ( timenow > 0 && tid_date[tid] > 0 && ( (timenow - tid_date[tid] ) > click_delay ) ) { //---------------------------------- // Yeah.. wipe tid time and convert //---------------------------------- tid_date[tid] = 0; span_to_input( tid ); return false; } //---------------------------------- // Not wiped? loop on! //---------------------------------- if ( tid_date[tid] > 0 ) { setTimeout( "topic_link_event_timer("+tid+")", 5 ); } else { return false; }}/*--------------------------------------------*/// Mouseup? Cancel timer to kill the loop/*--------------------------------------------*/function topic_link_event_mouseup( event ){ //---------------------------------- // Prevent link loading //---------------------------------- event = global_cancel_bubble( event, true ); //---------------------------------- // Get TID //---------------------------------- var tid = _get_tid_from_id( this.id ); //---------------------------------- // Reset timer //---------------------------------- tid_date[tid] = 0;}/*--------------------------------------------*/// Get time now/*--------------------------------------------*/function _get_time_now(){ var mydate = new Date(); return mydate.getTime();}/*--------------------------------------------*/// Get TID from ID/*--------------------------------------------*/function _get_tid_from_id( id ){ return id.replace( /.*\-(\d+)/, "$1" );}/*--------------------------------------------*/// Turn topic title into text input/*--------------------------------------------*/function topic_toggle_folder( tid, state ){ //---------------------------------- // Using fancy js? //---------------------------------- if ( ! use_enhanced_js ) { return false; } //---------------------------------- // Can edit? //---------------------------------- if ( ! perm_can_open && ! perm_can_close ) { return false; } var td_content = document.getElementById( 'tid-folder-' + tid ).innerHTML; if ( topic_state[ tid ] ) { state = topic_state[ tid ]; } if ( state == 'closed' ) { //---------------------------------- // Can? //---------------------------------- if ( ! perm_can_open ) { return false; } //---------------------------------- // Topic is locked //---------------------------------- if ( folders[ tid ] ) { td_content = folders[ tid ]; } state = 'open'; } else { //---------------------------------- // Can? //---------------------------------- if ( ! perm_can_close ) { return false; } //---------------------------------- // Topic isn't locked //---------------------------------- folders[ tid ] = td_content; state = 'closed'; } //----------------------------------------- // Store state //----------------------------------------- topic_state[ tid ] = state; /*--------------------------------------------*/ // Main function to do on request // Must be defined first!! /*--------------------------------------------*/ do_request_function = function() { //---------------------------------- // Ignore unless we're ready to go //---------------------------------- if ( ! xmlobj.readystate_ready_and_ok() ) { // Could do a little loading graphic here? return; } //---------------------------------- // INIT //---------------------------------- var returned = xmlobj.xmlhandler.responseText; td_content = returned; document.getElementById( 'tid-folder-' + tid ).innerHTML = td_content; }; //---------------------------------- // LOAD XML //---------------------------------- xmlobj = new ajax_request(); xmlobj.onreadystatechange( do_request_function ); xmlobj.process( ipb_var_base_url + 'act=xmlout&do=save-topic&type=openclose&name='+state+'&md5check='+ipb_md5_check+'&tid='+tid ); return false;}/*--------------------------------------------*/// Turn topic title into text input/*--------------------------------------------*/function span_to_input( tid ){ //---------------------------------- // Using fancy js? //---------------------------------- if ( ! use_enhanced_js ) { return false; } //---------------------------------- // Can? //---------------------------------- if ( ! perm_can_edit ) { return false; } //---------------------------------- // Prevent double click when desc open //---------------------------------- if ( _desc_clicked ) { return false; } span_html[ tid ] = document.getElementById( 'tid-span-' + tid ).innerHTML; text_html[ tid ] = document.getElementById( 'tid-link-' + tid ).innerHTML; //---------------------------------- // Topic title //---------------------------------- perm_max_length = perm_max_length ? perm_max_length : 50; document.getElementById( 'tid-span-' + tid ).innerHTML = '<input id="edit-'+tid+'" class="dny-edit-title" maxlength="'+perm_max_length+'" type="text" size="40" value="'+text_html[ tid ].replace( /"/g, '"') +'" />'; //"' document.getElementById( 'edit-' + tid ).onkeyup = function( event ) { tid_keypress(event, tid) } document.getElementById( 'edit-' + tid ).onblur = function( event ) { tid_blur(tid) } document.getElementById( 'edit-' + tid ).focus(); return false;}/*--------------------------------------------*/// Turn topic DESC into text input/*--------------------------------------------*/function span_desc_to_input( tid ){ //---------------------------------- // Using fancy js? //---------------------------------- if ( ! use_enhanced_js ) { return false; } //---------------------------------- // Can? //---------------------------------- if ( ! perm_can_edit ) { return false; } //---------------------------------- // Prevent double click when desc open //---------------------------------- if ( _desc_clicked ) { return false; } _desc_clicked = 1; desc_html[ tid ] = document.getElementById( 'tid-desc-' + tid ).innerHTML; //---------------------------------- // Topic desc //---------------------------------- document.getElementById( 'tid-desc-' + tid ).innerHTML = '<input id="edit-'+tid+'" maxlength="70" class="dny-edit-title" type="text" size="40" onblur="tid_blur(\''+tid+'\', \'desc\')" onkeypress="tid_keypress(event, \''+tid+'\',\'desc\')" value="'+desc_html[ tid ].replace( /"/g, '"')+'" />'; //"' document.getElementById( 'edit-' + tid ).focus(); return false;}/*--------------------------------------------*/// BLUR HANDLER/*--------------------------------------------*/tid_blur = function( tid, type ){ new_text = document.getElementById( 'edit-' + tid ).value; if( type == 'desc' ) { tid_save( tid, new_text, type ); } else { if ( new_text != "" ) { tid_save( tid, new_text, type ); } }}/*--------------------------------------------*/// KEY PRESS HANDLER/*--------------------------------------------*/tid_keypress = function( evt, tid, type ){ if ( is_safari ) { return false; } evt = evt ? evt : window.event; new_text = document.getElementById( 'edit-' + tid ).value; if ( ( evt.keyCode == 13 || evt.keyCode == 3 ) && new_text != "" ) { tid_save( tid, new_text, type ); } else if( evt.keyCode == 27 ) { if( type == 'desc' ) { document.getElementById( 'tid-desc-' + tid ).innerHTML = desc_html[ tid ]; } else { document.getElementById( 'tid-span-' + tid ).innerHTML = span_html[ tid ]; document.getElementById( 'tid-link-' + tid ).innerHTML = text_html[ tid ]; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -