2012-12-17 31 views
0

我在一个非常简单的JS项目工作(为我的客户,所以不能使用jQuery为此,MEH)document.execCommand不能正常工作

所以基本上我有这样几个按钮:

button.onClick="document.execCommand('bold', false, null);"; 

和其他类似的斜体,下划线等

的问题是,他们没有工作。我确信execCommand可以工作,因为我用计时器测试了它,它确实有效。不是的原因是,当我点击它时,contentEditable = true div中的文本被取消选中。

有什么办法可以避免这种情况?

在此先感谢。


boldBtn = document.createElement('a'); 
boldBtn.innerHTML = "make text bold"; 
    document.getElementById("toolbox").appendChild(boldBtn); 

boldBtn.onClick="document.execCommand('bold', false, null);"; 
+0

表现出更多的代码,请 –

+0

看看编辑。 –

回答

0

如果你这样做javasript,你宁愿设置听众真正的功能,而不是字符串是函数。

boldBtn.setAttribute("href", "#"); 
boldBtn.onClick = function() 
{ 
    document.execCommand("bold", false, null); //or maybe exec bold(false); directly ? 
    return false; 
}; 
+0

谢谢。奇怪的是,这仍然不起作用,你在评论中的含义是什么? –

+0

我的评论是,我想也许你不需要“execCommand”,因为它可能支持任何地方。也许继续“更老”但“更安全” –

1

为什么你正在使用exeCommand?

你可以通过香草JavaScript来做到这一点。

document.getElementById("boldBtn").style.fontWeight = "bold"; 

或既然你已经有了一个参考

boldBtn.style.fontWeight = "bold";