LLWiki正在建设中,欢迎加入我们

“User:Bhsd/edit.js”的版本间差异

来自LLWiki
跳转到导航 跳转到搜索
(// 使用Wikiplus小工具快速编辑)
标签移动版网页编辑 移动版编辑
第5行: 第5行:
btns = $('#wpSaveWidget, #wpPreviewWidget, #wpDiffWidget, #wpTemplateSandboxPreview'),
btns = $('#wpSaveWidget, #wpPreviewWidget, #wpDiffWidget, #wpTemplateSandboxPreview'),
action = mw.config.get('wgAction'),
action = mw.config.get('wgAction'),
contentmodel = mw.config.get('wgPageContentModel'),
skin = mw.config.get('skin');
skin = mw.config.get('skin');


第73行: 第74行:
}
}
if(mw.config.get('wgPageContentModel') == 'javascript') {
if(contentmodel == 'javascript') {
$('body').on('keydown', '#wpTextbox1, #Wikiplus-Quickedit', function(e){
$('body').on('keydown', '#wpTextbox1, #Wikiplus-Quickedit', function(e){
if(e.keyCode == 9){
if(e.keyCode == 9){
第91行: 第92行:
// 由于以下代码的奇怪性质,本页面不应频繁修改,至少不能使用移动版皮肤修改
// 由于以下代码的奇怪性质,本页面不应频繁修改,至少不能使用移动版皮肤修改
btns.on('click', function() {
btns.on('click', function() {
if(mw.config.get('wgPageContentModel') == 'javascript') { editBox.val(editBox.val().replace(/\t/g, " ")); }
if(contentmodel == 'javascript') { editBox.val(editBox.val().replace(/\t/g, " ")); }
if(skin == 'vector') { return; }
if(skin == 'vector' || contentmodel == 'wikitext') { return; }
editBox.val(editBox.val().replace(/(‘|’)/g,"'"));
editBox.val(editBox.val().replace(/(‘|’)/g,"'"));
editBox.val(editBox.val().replace(/(“|”)/g,'"'));
editBox.val(editBox.val().replace(/(“|”)/g,'"'));

2020年10月5日 (一) 19:51的版本

$(function() {
    /* JavaScript编辑界面按tab键空4格 */
    var editBox = $('#wpTextbox1'),
        title = mw.config.get('wgPageName'),
        btns = $('#wpSaveWidget, #wpPreviewWidget, #wpDiffWidget, #wpTemplateSandboxPreview'),
        action = mw.config.get('wgAction'),
        contentmodel = mw.config.get('wgPageContentModel'),
        skin = mw.config.get('skin');

    if(['edit', 'submit'].includes(action)) {
        $('#wpTextbox1').on( 'wikiEditor-toolbar-doneInitialSections', function() {
            $('.oo-ui-icon-articleSearch').one('click', function() {
                var timer = setInterval(function() {
                    if( $('#wikieditor-toolbar-replace-replace').length ) {
                        clearInterval(timer);
                        var ele = $( '<textarea id="wikieditor-toolbar-replace-replace" tabindex="10">' )
                            .keydown(function(e) {
                            if(e.keyCode == '13'){
                                var text = ele.val(),
                                    before = text.substring(0, ele.prop('selectionStart')),
                                    after = text.substring( ele.prop('selectionEnd') );
                                ele.val(before + '\n' + after);
                            }
                        });
                        $( 'input#wikieditor-toolbar-replace-replace' ).replaceWith(ele);
                    }
                }, 100);
            });
        });
    }

    // 引自[[moegirl:User:東東君/js/Wikiplus-replace.js]]
    if( action == 'view' && mw.config.get('wgIsArticle') && mw.config.get('wgIsProbablyEditable') &&
        (mw.loader.getState( 'ext.gadget.Wikiplus' ) == 'ready' || mw.loader.getState( 'ext.gadget.mobile-Wikiplus' ) == 'ready') ) {
        $('body').on('click', '#Wikiplus-Edit-TopBtn, .Wikiplus-Edit-SectionBtn', function(){
            var timer = setInterval(function() {
                if( $('#Wikiplus-Quickedit-Jump').length ) {
                    clearInterval(timer);
                    if( $('#Wikiplus-Quickedit-Replace').length ) { return; }
                    $('#Wikiplus-Quickedit-Jump').after( '<span id="Wikiplus-Quickedit-Replace" class="Wikiplus-Btn">替换</span>' );
                    $('#Wikiplus-Quickedit-Replace').on('click', function() {
                        if($('.quickEdit-replace').length === 0) {
                            var textarea = $('#Wikiplus-Quickedit'),
                                backup = "",
                                dialog = $('<div class="quickEdit-replace"><label>查找:<input type="text" id="quickEdit-replace-pattern"></label><label>替换:<textarea id="quickEdit-replace-val"></textarea></label><label id="quickEdit-replace-regex"><input type="checkbox">正则</label><button id="quickEdit-replace_replaceBtn">替换</button><button id="quickEdit-replace_undoBtn" disabled="true">撤销</button><button id="quickEdit-replace_hideBtn">关闭</button></div>')
                            .appendTo('.Wikiplus-InterBox')
                            .on('click', '#quickEdit-replace_hideBtn', function(e) {
                                $(e.delegateTarget).css('display', 'none');
                            })
                            .on('click', '#quickEdit-replace_undoBtn', function() {
                                textarea.val(backup);
                            })
                            .on('click', '#quickEdit-replace_replaceBtn', function() {
                                var ptn = $('#quickEdit-replace-pattern').val(),
                                    value = $('#quickEdit-replace-val').val(),
                                    isRegex = $('#quickEdit-replace-regex input').prop('checked');
                                backup = textarea.val();
                                $( '#quickEdit-replace_undoBtn' ).prop('disabled', false);
                                mw.loader.using( 'mediawiki.util' ).then(function() {
                                    textarea.val( backup.replace(new RegExp( isRegex ? ptn : mw.util.escapeRegExp(ptn), 'g' ), value) );
                                });
                            });
                            mw.loader.using( 'jquery.ui' ).then(function() {
                                dialog.draggable();
                            });
                        }
                        else {
                            $('.quickEdit-replace').css('display', 'initial');
                        }
                    });
                }
            }, 100);
        });
    }
    
    if(contentmodel == 'javascript') {
        $('body').on('keydown', '#wpTextbox1, #Wikiplus-Quickedit', function(e){
            if(e.keyCode == 9){
                e.preventDefault();
                var position = this.selectionStart,
                    left = this.value.substring(0, position),
                    right = this.value.substring(position),
                    code = left + '    ' + right;
                this.value = code;
                this.selectionStart = this.selectionEnd = position + 4;
            }
        });
    }

    $( 'input[name=wpTemplateSandboxPage]' ).val(function() { return $(this).val() || title });

    // 由于以下代码的奇怪性质,本页面不应频繁修改,至少不能使用移动版皮肤修改
    btns.on('click', function() {
        if(contentmodel == 'javascript') { editBox.val(editBox.val().replace(/\t/g, "    ")); }
        if(skin == 'vector' || contentmodel == 'wikitext') { return; }
        editBox.val(editBox.val().replace(/(‘|’)/g,"'"));
        editBox.val(editBox.val().replace(/(“|”)/g,'"'));
    });
});