Javascript document.execCommand不';我不能在angularJS工作
我有一个应用程序,我想做一个编辑区,就像StackOverflow上的这个一样。我不想使用textangle指令,因为它太难理解,所以我找到了这个Javascript函数document.execCommand,它似乎正是我需要的 问题是我不能让它在AngularJs中工作。它没有给出任何错误,只是没有做任何事情 我有一个内容可编辑的div:Javascript document.execCommand不';我不能在angularJS工作,javascript,angularjs,document,Javascript,Angularjs,Document,我有一个应用程序,我想做一个编辑区,就像StackOverflow上的这个一样。我不想使用textangle指令,因为它太难理解,所以我找到了这个Javascript函数document.execCommand,它似乎正是我需要的 问题是我不能让它在AngularJs中工作。它没有给出任何错误,只是没有做任何事情 我有一个内容可编辑的div: <div contenteditable id="text"><h5>Select a part of this text!<
<div contenteditable id="text"><h5>Select a part of this text!</h5></div>
我已经尝试过使用$document
,我将其注入控制器,但是它给了我一个错误提示
TypeError: undefined is not a function at Scope.$scope.wrapBold
textAngular实际上在内部使用document.execCommand(仅供参考,我是维护人员) 您的代码非常正确,您面临的问题是,当您单击该按钮时,您失去了contenteditable区域的焦点/选择,因此它没有插入的位置 根据记忆,你必须做两件事;使带有ng单击的元素具有属性
unselectable=“on”
,并捕获和防止同一元素上的mousedown事件。下面是我们在textAngular中设置按钮的方式:
$document的问题是,您需要使用$document[0]来获取能够调用execCommand的实际HTML DOM元素。但似乎
document.execCommand
是Mozilla独有的API,这意味着它不能与Angular一起使用?您对此有什么建议吗?@Adel谁知道呢,但是,如果你发现使用一个可用于Firefox而不适用于其他主流浏览器的API更容易的话……可能的重复非常感谢你的明确解释。我终于成功了!git集线器链接不再有效。你能更新一下答案吗。另外,如果可能的话,你能帮我吗
$scope.wrapBold = function() {
document.execCommand('bold', false, null);
};
TypeError: undefined is not a function at Scope.$scope.wrapBold