252 lines
11 KiB
HTML
Raw Normal View History

2013-11-01 14:13:51 +08:00
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
<style type="text/css">
*{margin: 0;padding: 0;font-size: 12px;}
.wrapper{margin-left: 2px;}
.base{width: 472px;height: 70px; margin-left: 10px;margin-top:10px;border: 1px solid #ddd;}
legend{margin-left: 5px; font-weight: bold;font-size: 12px;color: #0066cc;}
fieldset table{margin-left: 5px;float: left;}
select{width: 50px}
.base table{margin-left: 10px;}
.base table tr{height: 25px;}
input{ width: 50px;border:1px solid #ccc;}
.extend {width: 300px;height: 160px;margin:10px;;float: left;border: 1px solid #ddd;}
.extend table{height: 135px;}
#preview{width: 160px;height: 155px;float: left;border: 1px solid #ccc;margin: 16px 0;background-color: #eee}
span.bold{font-weight: bold}
#preview table {margin:3px 5px;}
#preview table td{width: 30px;height: 20px;}
#message{float: left;width: 110px;margin-left: 10px;font-size: 10px;color: red;line-height: 15px}
#messageContent{color: green;margin-top: 5px;}
.extend select{width: 90px}
#bgColor{width: 85px;}
</style>
</head>
<body>
<div class="wrapper">
<fieldset class="base">
<legend><var id="lang_baseInfo"></var></legend>
<table>
<tr>
<td width="120"><label for="numRows"><var id="lang_rows"></var>: </label><input id="numRows" type="text" /> <var id="lang_rowUnit"></var></td>
<td>
<label for="width"><var id="lang_width"></var>: </label><input id="width" type="text" />
<label for="widthUnit"><var id="lang_widthUnit"></var>: </label>
<select id="widthUnit">
<option value="%">%</option>
<option value="px">px</option>
</select>
</td>
</tr>
<tr>
<td><label for="numCols"><var id="lang_cols"></var>: </label><input id="numCols" type="text" /> <var id="lang_colUnit"></var></td>
<td>
<label for="height"><var id="lang_height"></var>: </label><input id="height" type="text" />
<label for="heightUnit"><var id="lang_heightUnit"></var>: </label>
<select id="heightUnit">
<option value="%">%</option>
<option value="px">px</option>
</select>
</td>
</tr>
</table>
<div id="message" style="display: none">
<p><var id="lang_warmPrompt"></var></p>
<p id="messageContent"><var id="lang_maxPadding"></var></p>
</div>
</fieldset>
<div>
<fieldset class="extend">
<legend><var id="lang_extendInfo"></var><span style="font-weight: normal;">(<var id="lang_preview"></var>)</span></legend>
<table>
<tr>
<td width="60"><span class="bold"><var id="lang_tableBorder"></var></span>:</td>
<td><label for="border"><var id="lang_borderSize"></var>: </label><input id="border" type="text" /> px&nbsp;</td>
<td><label for="borderColor"><var id="lang_borderColor"></var>: </label><input id="borderColor" type="text" /></td>
</tr>
<tr style="border-bottom: 1px solid #ddd">
<td><span class="bold"><var id="lang_mar_pad"></var></span>:</td>
<td><label for="cellPadding"><var id="lang_margin"></var>: </label><input id="cellPadding" type="text" /> px&nbsp;</td>
<td><label for="cellSpacing"><var id="lang_padding"></var>: </label><input id="cellSpacing" type="text" /> px </td>
</tr>
<tr>
<td colspan="3"><span class="bold"><var id="lang_table_background"></var></span>:
<input id="bgColor" type="text" />
</td>
</tr>
<tr>
<td colspan="3"><span class="bold"><var id="lang_table_alignment"></var></span>:
<select id="align">
<option value=""></option>
<option value="center"></option>
<option value="left"></option>
<option value="right"></option>
</select>
</td>
</tr>
<tr>
<td colspan="3">
<span class="bold"><var id="lang_borderFor"></var></span>:
<select id="borderType">
<option value="0"></option>
<option value="1"></option>
</select>
</td>
</tr>
</table>
</fieldset>
<div id="preview">
<table border="1" borderColor="#000" cellpadding="0" cellspacing="0" style="border-collapse: collapse;">
<tr><td colspan="3"><var id="lang_forPreview"></var></td></tr>
<tr><td></td><td></td><td></td></tr>
<tr><td></td><td></td><td></td></tr>
</table>
</div>
</div>
</div>
<script type="text/javascript" src="../internal.js"></script>
<script type="text/javascript" src="table.js"></script>
<script type="text/javascript">
var inputs = document.getElementsByTagName('input'),
selects=document.getElementsByTagName('select');
//ie给出默认值
for(var i=0,ci;ci=inputs[i++];){
switch (ci.id){
case 'numRows':
case 'numCols':
ci.value = 5;
break;
case 'bgColor':
ci.value = '';
break;
case 'borderColor':
ci.value = '#000000';
break;
case 'border':
ci.value = 1;
break;
case 'cellSpacing':
case 'cellPadding':
ci.value = '0';
break;
default:
}
}
for(var i=0,ci;ci=selects[i++];){
ci.options[0].selected = true;
}
var state = editor.queryCommandState("edittable");
if(state == 0){
var range = editor.selection.getRange(),
table = domUtils.findParentByTagName(range.startContainer,'table',true);
if(table){
var numRows = table.rows.length,cellCount=0;
//列取最大数
for(var i=0,ri;ri=table.rows[i++];){
var tmpCellCount = 0;
for(var j=0,cj;cj=ri.cells[j++];){
if(cj.style.display != 'none'){
tmpCellCount++;
}
}
cellCount = Math.max(tmpCellCount,cellCount)
}
domUtils.setAttributes($G('numRows'),{
'value':numRows,
'disabled':true
});
domUtils.setAttributes($G('numCols'),{
'value':cellCount,
'disabled':true
});
$G("cellPadding").value = table.getAttribute("cellPadding") || '0';
$G("cellSpacing").value = table.getAttribute("cellSpacing") || '0';
var value = table.getAttribute('width');
value = !value ? ['',table.offsetWidth]:/%$/.test(value) ? value.match(/(\d+)(%)?/) : ['',value.replace(/px/i,'')];
$G("width").value = value[1];
$G('widthUnit').options[value[2] ? 0:1].selected = true;
value = table.getAttribute('height');
value = !value ? ['','']:/%$/.test(value) ? value.match(/(\d+)(%)?/) : ['',value.replace(/px/i,'')];
$G("height").value = value[1];
$G('heightUnit').options[value[2]?0:1].selected = true;
$G('borderColor').value = (table.getAttribute('borderColor')||"#000000").toUpperCase();
$G("border").value = table.getAttribute("border");
for(var i=0,ip,opts= $G("align").options;ip=opts[i++];){
if(ip.value == (table.getAttribute('align' )||"").toLowerCase()){
ip.selected = true;
break;
}
}
$G("borderType").options[table.getAttribute('borderType') == '1' ? 1: 0].selected = true;
$G("bgColor").value = (table.getAttribute("bgColor")||"").toUpperCase();
createTable();
}
}else{
$focus($G("numRows"));
}
init();
domUtils.on($G("width"),"keyup",function(){
var value = this.value;
if(value>100){
$G("widthUnit").value="px";
}
});
domUtils.on($G("height"),"keyup",function(){
var value = this.value;
if(value>100){
$G("heightUnit").value="px";
}
});
dialog.onok = function(){
for(var i=0,opt={},ci;ci=inputs[i++];){
switch (ci.id){
case 'numRows':
case 'numCols':
case 'height':
case 'width':
if(ci.value && !/^[1-9]+[0-9]*$/.test(ci.value)){
alert(lang.errorNum);
$focus(ci);
return false;
}
break;
case 'cellspacing':
case 'cellpadding':
case 'border':
if(ci.value && !/^[0-9]*$/.test(ci.value)){
alert(lang.errorNum);
$focus(ci);
return false;
}
break;
case 'bgColor':
case 'borderColor':
if(ci.value && !/^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/.test(ci.value)){
alert(lang.errorColor);
$focus(ci);
return false;
}
break;
default:
}
opt[ci.id] = ci.value || (ci.id == 'border' ? 0 : '')
}
for(var i=0,ci;ci=selects[i++];){
opt[ci.id] = ci.value.toUpperCase()
}
editor.execCommand(state == -1 ? 'inserttable' : 'edittable',opt );
};
</script>
</body>
</html>