删除&后台空间不适用于radeditor

时间:2014-11-07 08:11:37

标签: javascript asp.net telerik radeditor

我在项目中使用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>&nbsp;which we have to test

它看起来像这样 enter image description here

这里我们可以看到两个VAR标签。他们在chrome&amp; amp;苹果浏览器。 也没有使用权利和左箭头我不能通过这个var标签既不使用后空格&amp;删除适用于此。

此问题仅发生在chrome&amp;野生动物园不是在firefox&amp; IE。

1 个答案:

答案 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> 

请注意,这有点像黑客。虽然我们不希望在可预见的将来改变这种方法的名称,但它仍然不是一种公共方法,所以没有保证。