【问题标题】:HTML5 ContentEditable not working in ChromeHTML5 ContentEditable 在 Chrome 中不起作用
【发布时间】:2011-06-12 22:51:41
【问题描述】:

我正在构建一个 HTML5 网络应用程序,我尝试使用 contenteditable 功能对文本进行就地编辑,但由于某种原因,我无法让“编辑”工作。

编辑:我使用的是 Chrome 12.0.xx

  • 突出显示元素(我可以通过 CSS 看到)
  • 我还测试了object.isContentEditable,它返回true
  • 我尝试将<lable> 更改为<div><p><span> 等其他元素,但没有任何效果。只有<textarea> 有效,但我猜这与HTML5 或contenteditable 属性无关。李>
  • blur 事件在退出编辑模式时被触发。(我可以从调试器中看到)

有一些线索有问题How do I figure out why the contenteditable attribute doesn't work? 我尝试关闭所有 CSS 但没有运气。

唯一的事情是,我通过 javascript 添加我的元素而不是 HTML 源代码

JS 代码:

var newLi =document.createElement("li");
var newLable=document.createElement("lable");
newLable.className="labletext";
newLable.contentEditable="true";
newLable.innerText=String(localStorage["task."+i+".taskValue"]);
newLable.addEventListener('blur',editTask,false);
newLi.appendChild(newLable);
Parent.appendChild(newLi);

function editTask()
{
   var keyid=this.id;
   var startchar = keyid.lastIndexOf("_");
   var endchar=keyid.length;        
   var taskId=parseInt(keyid.substring(startchar+1,endchar));

   localStorage.setItem("task."+taskId+".taskValue",this.innerText);
   loadTasks("tasklist");
}

【问题讨论】:

  • 如果您想转到字符串的末尾,则不需要向substring 提供第二个参数。只要keyid.substring(startchar+1) 就好了。
  • 你知道addEventListener在IE8中不起作用,对吧?
  • 你知道innerText 在 Firefox 中不起作用,对吧?
  • 嗨,谢谢你告诉我。我更改了代码。另外,我正专注于为 chrome 制作这个应用程序,所以 IE8 对我来说现在不是问题。我会记住这一点。

标签: javascript html google-chrome


【解决方案1】:

这是

document.createElement('label')

不是'lable'

现场演示: http://jsfiddle.net/XuAfA/1/

演示显示 LABEL 可编辑的。

【讨论】:

  • 嗨,我刚试过这个,在 chrome 中它不起作用。即使是模糊事件也不会被触发。使用 Lable 至少会发生高亮并触发模糊事件。我在 IE9 中也很累,标签和标签都可以正常工作,并且内容是可编辑的。
  • 我检查了你的演示,它在 chrome 中很好。我一定做错了什么。我会再看一遍。谢谢你的帮助
  • 发现了问题。我还在
  • 上启用了可拖动属性,因此点击事件在到达 之前被劫持了
  • 。它在这里回答stackoverflow.com/questions/4954994/…
  • 发现了问题。我还在
  • 上启用了可拖动属性,因此点击事件在到达 之前被
  • (我使用 jquery)劫持。它在这里回答stackoverflow.com/questions/4954994/…
  • 【解决方案2】:

    对于稍后来到这里的任何人,我发现了问题。我还在<li> 上启用了可拖动属性,因此点击事件在到达<label> 孩子之前被<li> 事件劫持。它在这里回答How can I enable 'draggable' on a element with contentEditable?

    【讨论】:

      猜你喜欢
      相关资源
      最近更新 更多
      热门标签