维基百科:維基百科工具/編輯工具/彈出表格按鈕

维基百科,自由的百科全书

注:目前代码失效。

本說明如何將表格按鈕的變成一個彈出功能的工具,可以方便控制表格的行列數。目前在IE瀏覽器中存在問題,可能會在以後進行改進。

在monobook的外觀設定下(也就是預設值), 您可以通過增加javascript語法──也就是你的用戶子頁面User:您的用戶名/monobook.js 中加javascript代碼──來加載本功能。

假设你选择的编辑模式为"YourMode",則把以下代碼放置在Wikipedia:維基百科工具/編輯工具/YourMode.js页面中的合適位置。

addEditButton('btnTable',{
	src        : "0/04/Button_array.png",
	tagOpen    : '',
	sampleText : '',
	tagClose   : '',
	speedTip   : "插入表格(弹出提示)",
	action     : popupTable
});

/**
 *
 * English: Generate an array using Mediawiki syntax
 *
 * @author: fr:user:dake
 * @version: 0.1
 */

function generateTableau(nbCol, nbRow, border, styleHeader, styleLine)
{
	var code = "\n";
	if (styleHeader==1) {
		code += '{\| border="0" cellpadding="3px" style="border: 1px solid #999; background-color:#ffffff;"\n|-align="center" style="background-color: #cccccc;"\n';
	} else {
		code += '{| border="' + border + '"\n';
		code += '|+ 表格标题\n';
	}
	
	for (var i=0;i<nbCol;i++) code += '! 表头 ' + i + '\n'
	
	for (var j=0;j<nbRow;j++) {
		if ((j+1)%2==0 && styleLine==1) {
			code += '|-{\{bgcolor="#EFEFEF"}\}\n'
		} else {
			code += '|-----\n'
		}
		for (var i=0;i<nbCol;i++){
			code += '| 内容\n';
		}
	}
	
	code += '|}';
	insertTags('','', code);
}

/**
 *
 * English: Open a popup with parameters to generate an array.
 * The number of rows/columns can be modified. Some additional
 * parameters are related to templates available on :fr
 *
 * @author: fr:user:dake
 * @version: 0.1
 * 
 */

//增加彈出表格按鈕

function popupTable(){
	var popup = window.open('','name','height=400,width=500');
	
	javaCode =  '<script type="text\/javascript">function insertCode(){';
	javaCode += 'var row = parseInt(document.paramForm.inputRow.value); '
	javaCode += 'var col = parseInt(document.paramForm.inputCol.value); '
	javaCode += 'var bord = parseInt(document.paramForm.inputBorder.value); '
	javaCode += 'var styleHeader = document.paramForm.inputHeader.checked; '
	javaCode += 'var styleLine = document.paramForm.inputLine.checked; '
	javaCode += 'window.opener.generateTableau(col,row,bord,styleHeader,styleLine); '
	javaCode += '}<\/script>';
	
	popup.document.write('<html><head><title>表格参数</title>');
	popup.document.write('<script type="text\/javascript" src="\/skins-1.5\/common\/wikibits.js"><!-- wikibits js --><\/script>');
	popup.document.write('<style type="text\/css" media="screen,projection">/*<![CDATA[*/ @import "\/skins-1.5\/monobook\/main.css?5"; /*]]>*/<\/style>');
	popup.document.write(javaCode);
	popup.document.write('</head><body>');
	popup.document.write('<p>请输入想要生成表格的参数:</p>');
	popup.document.write('<form name="paramForm">');
	popup.document.write('行数:<input type="text" name="inputRow" value="3" ><p>');
	popup.document.write('列数:<input type="text" name="inputCol" value="3" ><p>');
	popup.document.write('边框宽度:<input type="text" name="inputBorder" value="1" ><p>');
	popup.document.write('灰色表头:<input type="checkbox" name="inputHeader" checked="1" ><p>');
	popup.document.write('灰色斑马表:<input type="checkbox" name="inputLine" checked="1" ><p>');
	popup.document.write('</form">');
	popup.document.write('<p><a href="javascript:insertCode()"> 将代码插入到编辑窗口中</a></p>');
	popup.document.write('<p><a href="javascript:self.close()"> 关闭</a></p>');
	popup.document.write('</body></html>');
	popup.document.close();
	
	return false;
}

/*

*/

则会生成一个弹出功能的按钮。