可以使用下面这个封装函数:
function cambia(element) {
if (getBrowser() == "IE") {
cambia_ie(element);
return;
}
var oldhtml = element.innerHTML;
//如果已经双击过,内容已经存在input,不做任何操作
if (oldhtml.indexOf('type="text"') > 0) {
return;
}
//创建新的input元素
var newobj = document.createElement('input');
//为新增元素添加类型
newobj.type = 'text';
//为新增元素添加原来的样式
//newobj.setAttribute("style", "width:240px;height:50px;");
//console.log(getComputedStyle(element, null).fontFamily);
width = widthEl(element.id) + 100;
height = heightEl(element.id) + 5;
newobj.style.fontSize = "14px";
newobj.style.width = width + "px";//240px
newobj.style.height = height + "px";
newobj.style.color = getComputedStyle(element, null).color;
newobj.style.fontSize = getComputedStyle(element, null).fontSize;
newobj.style.fontStyle = getComputedStyle(element, null).fontStyle;
newobj.style.fontFamily = getComputedStyle(element, null).fontFamily;
newobj.style.fontWeight = getComputedStyle(element, null).fontWeight;
newobj.style.backgroundColor = getComputedStyle(element, null).backgroundColor;
//为新增元素添加value值
newobj.value = oldhtml;
//为新增元素添加光标离开事件
newobj.onblur = function () {
element.innerHTML = this.value == oldhtml ? oldhtml : this.value;
//当触发时判断新增元素值是否为空,为空则不修改,并返回原有值
if (this.value != oldhtml) {
//fieldBlur(element, element.id);
var sid = document.getElementsByName("surveyID")[0].value;
AjaxRequest(urlBase + "?fieldname=" + element.id + "&sid=" + sid + "&content=" + escape(this.value) + "&" + formVars);
}
}
//设置该标签的子节点为空
element.innerHTML = '';
//添加该标签的子节点,input对象
element.appendChild(newobj);
//设置选择文本的内容或设置光标位置(两个参数:start,end;start为开始位置,end为结束位置;如果开始位置和结束位置相同则就是光标位置)
//newobj.setSelectionRange(0, oldhtml.length);
//设置获得光标
newobj.focus();
}