User:Huawei251/edit.js

From TestWiki

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
$(function () {
	var tick = 0;
	
        console.log('Hello, Happy World!');
        
    var insertSummary = function ($this, $summary) {
        var summary = $summary.val();
        var $item = $this.parent('.mw-summary-preset-item');
        summary = summary.replace(/\s+$/g, '');
        if (summary != '') {
            summary += ' ';
        }
        summary += $item.attr('title') || $this.text();
        $this.replaceWith($this.contents());
        $summary.val(summary).change();
    };

    // 传统编辑器
    $('#wpSummaryLabel .mw-summary-preset').on('click', '.mw-summary-preset-item a', function(e) {
        e.preventDefault();
        insertSummary($(this), $('#wpSummary'));
    });

    // VE / 新维基文本
    // 目前测试的结果是,第一次放弃编辑,第二次进入VE后点击编辑摘要就失效了。--Xiplus#Talk 2020年4月10日 (五) 15:05 (UTC)
    
    var isInitSummary = false;
    var initSummaryFunc = null;
    
    mw.hook('ve.activationComplete').add(function () {
    	// 此处不一定是第一次加载VE。可能是点“条目”页签放弃修改,然后又继续进入VE
    	
    	console.log('ve.activationComplete');
		isInitSummary = false;
    	
    	if (!initSummaryFunc) {
    		initSummaryFunc = function () {
	        	tick++;
	        	console.log('ve.saveDialog.stateChanged: ' + tick);
	        	
	            // 编辑摘要链接在点击“发布更改”按钮之后才会加载
	            if (!isInitSummary) {
	    	        console.log('initSummary');
	                $('div.ve-ui-mwSaveDialog-summaryLabel span.mw-summary-preset-item > a')
	                    .removeAttr('target')
	                    .click(function (e) {
	                        e.preventDefault();
	                        insertSummary($(this), $('div.ve-ui-mwSaveDialog-summary > textarea'))
	                    });
	                isInitSummary = true;
	            }
	        };
	        mw.hook('ve.saveDialog.stateChanged').add(initSummaryFunc);
    	}
    	
    });
});