252 lines
11 KiB
HTML
252 lines
11 KiB
HTML
<!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 </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 </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> |