我在项目中使用radeditor。 我创建了一些自定义标签,我在文本区域插入 Bellow是带有文本
的此标签的演示html代码this is demo<var is-end="false" conditionid="439726" conditionfield="FELT001" conditionlabel="new co" title="Start of condition: new co" style="display: inline-block; width: 16px; height: 16px; margin-right: 3px; background-image: url('http://localhost/dialogportal.com/images/icons/condition-begin.gif'); background-repeat: no-repeat;" contenteditable="false"></var> text <var is-end="false" conditionid="439726" conditionfield="FELT001" conditionlabel="new co" title="Start of condition: new co" style="display: inline-block; width: 16px; height: 16px; margin-right: 3px; background-image: url('http://localhost/dialogportal.com/images/icons/condition-begin.gif'); background-repeat: no-repeat;" contenteditable="false"></var>again this will have conditions<var is-end="true" conditionid="439726" title="End of condition: new co" style="display: inline-block; width: 16px; height: 16px; margin-left: 3px; background-image: url('http://localhost/dialogportal.com/images/icons/condition-end.gif'); background-repeat: no-repeat;" contenteditable="false"></var><var is-end="true" conditionid="439726" title="End of condition: new co" style="display: inline-block; width: 16px; height: 16px; margin-left: 3px; background-image: url('http://localhost/dialogportal.com/images/icons/condition-end.gif'); background-repeat: no-repeat;" contenteditable="false"></var> which we have to test
它看起来像这样
这里我们可以看到两个VAR标签。他们在chrome&amp; amp;苹果浏览器。 也没有使用权利和左箭头我不能通过这个var标签既不使用后空格&amp;删除适用于此。
此问题仅发生在chrome&amp;野生动物园不是在firefox&amp; IE。
答案 0 :(得分:2)
编辑在其内容区域中附加了许多事件 - 其中一个当然是onkeydown。 由于某些浏览器怪癖,编辑器需要在按下BACK或DELETE时执行一些代码。
当您在OnClientLoad中注册自己的处理程序时,您的代码将在编辑器自己的事件处理程序之后执行。
不幸的是没有&#34;标准&#34;重写此行为的方法。然而 - 下面的代码是一个相当简单的方法,应该可以做到 - 你需要做的就是在编辑器声明后添加这个脚本。 从本质上讲,正如您所看到的,代码会覆盖编辑器的私有_onKeyDown方法,并允许您在那里执行自己的代码。
<script>
Telerik.Web.UI.RadEditor.prototype.old_onKeyDown = Telerik.Web.UI.RadEditor.prototype._onKeyDown;
Telerik.Web.UI.RadEditor.prototype._onKeyDown = function (e)
{
//Write your own here
if (e.keyCode == 8) //BACK was pressed
{
//if you do not want the editor to execute its own code cancel event
return $telerik.cancelRawEvent(e);
}
//Call original code
this.old_onKeyDown(e);
}
</script>
请注意,这有点像黑客。虽然我们不希望在可预见的将来改变这种方法的名称,但它仍然不是一种公共方法,所以没有保证。