Under IE11 the pasting from Word is handled natively by the browser. When pasting content with list element, the list items are pasted with paragraphs inside. This behavior is W3C compliant, but when it comes to editable content, such scenario causes inappropriate behavior of the tools interacting with the block elements. E.g., a paragraph in a list item cannot be considered as list item, and the tools will not be able to modify the list item. On other side, if a paragraph is considered as list item, any paragraph formatting commands will affect the paragraph, and not the list. A suitable behavior would be to handle the paragraphs and transform them to span or br elements to keep correct formatting, and the list, indent, outdent and other block commands to interact correctly with the Editor content. The following paste event handler transforms the paragraphs to span elements: <telerik:RadEditor runat="server" ID="RadEditor1" OnClientPasteHtml="OnClientPasteHtml"></telerik:RadEditor> <script type="text/javascript"> function OnClientPasteHtml(editor, args) { var cleanContent = args.get_value(), regexp = /(<li.+)(<p)(.+)(<\/p)(.+)/gi, replaceString = "$1<span$3</span$5"; while (cleanContent.match(regexp)) { cleanContent = cleanContent.replace(regexp, replaceString) } args.set_value(cleanContent); } </script>
This results to a breaking behavior of the Bold, Italic etc. (Inline Commands) when the last word in a line is selected and user tries to format it.
Steps to reproduce: 1. Set a singe paragraph in content area - <p>some paragraph</p> 2. Select any part of it and apply FontName or RealFontSize command. Workaround: <telerik:RadEditor ID="RadEditor1" runat="server"> <Content> <p>some paragraph</p> </Content> </telerik:RadEditor> <script type="text/javascript"> (function () { var getValue = Telerik.Web.UI.Editor.InlineCommandWithValue.prototype.getValue; Telerik.Web.UI.Editor.InlineCommandWithValue.prototype.getValue = function (wnd, range) { try { if (!range || !this.settings.enableToolStateValue) return; if (!range.isCollapsed()) { range.normalizeEdges(); } var startNode = range.startContainer; if (Telerik.Web.UI.Editor.Utils.isTextNode(startNode)) { startNode = startNode.parentNode; } else if (startNode.childNodes[range.startOffset] && !Telerik.Web.UI.Editor.Utils.isTextNode(startNode.childNodes[range.startOffset])) { startNode = startNode.childNodes[range.startOffset]; } return $telerik.getComputedStyle(startNode, this.settings.cssName) || $telerik.getComputedStyle(startNode, this.getAltCssName(this.settings.cssName)); } catch (e) { getValue.call(this, wnd, range); } } })(); </script>
Hello, jquery has two deployment versions -- development, which is ~280k, and production, which is minified down to ~90k. Deploying the non-minified version to production is a waste of almost 200k of unnecessary data. There should be a configuration setting (either in RadScriptManager or in web.config; web.config preferred) for specifying that the production (minified) version is desired. thanks, matt
RadScheduler's "today" link is positioned below the Prev/Next arrows in Safari on iOS and OS X. It is positioned properly after changing the views. As a quick fix, you can set CSS: <style type="text/css"> html .RadScheduler .rsHeader > p { width: 80px; } </style> Width value will vary depending on the skin used.
The NewLine command behave inconsistently across browsers and causes different incorrect content generation in IE, Chrome and Safari. - In IE - New lines are added, but the cursor stays in the initial/first line. This issue also causes an performance problems when typing and pressing Enter with regular speed. - In Chrome - Pressing Enter causes mixed content of tracked and not-tracked text to appear without toggling the state of the Track Changes. Also, adds an empty INS tag in from of the new line. - In Safari - Adds an empty INS tag in from of the new line. For the time being you can incorporate the JavaScript code from the following example: <telerik:RadEditor runat="server" ID="RadEditor1" EnableTrackChanges="true"> <Tools> <telerik:EditorToolGroup> <telerik:EditorTool name="AcceptTrackChange" text="Accept Track Change" /> <telerik:EditorTool name="RejectTrackChange" text="Reject Track Change" /> <telerik:EditorTool name="AcceptAllTrackChanges" text="Accept All Track Changes" /> <telerik:EditorTool name="RejectAllTrackChanges" text="Reject All Track Changes" /> <telerik:EditorTool name="EnableTrackChangesOverride" text="Enable Track Changes Override" /> </telerik:EditorToolGroup> </Tools> </telerik:RadEditor> <script type="text/javascript"> (function () { var $E = Telerik.Web.UI.Editor; var utils = $E.Utils; var isTypingKey = utils.isTypingKey; utils.isTypingKey = function (e) { return e.keyCode != 13 && isTypingKey(e); } var extractFrom = $E.InsertParagraphCommand.prototype.extractFrom; $E.InsertParagraphCommand.prototype.extractFrom = function (cursor, container) { var newElement = extractFrom.call(this, cursor, container); if (!this.get_editor().get_enableTrackChanges() || utils.isTextNode(cursor.nextSibling)) return newElement; $telerik.$(newElement).find("*").each(function (index, item) { if ($E.TrackChangesUtils.isTrackChangeElement(item)) { if (utils.isTag(item, "ins") || utils.isTag(item, "del")) { utils.removeNode(item); return; } $E.TrackChangesUtils.removeNodeTracking(item); } }); return newElement; } }()); </script>
In Chrome and Safari, adding a space with disabled Track Changes right after a tracked text, the space appears inside the <ins> tag instead of outside.
This issue causes an additional ghost character to appear in the text without any incorrect user interaction. For the time being you can incorporate the JavaScript code from the following example: <telerik:RadEditor runat="server" ID="RadEditor1" EnableTrackChanges="true"> <Tools> <telerik:EditorToolGroup> <telerik:EditorTool name="AcceptTrackChange" text="Accept Track Change" /> <telerik:EditorTool name="RejectTrackChange" text="Reject Track Change" /> <telerik:EditorTool name="AcceptAllTrackChanges" text="Accept All Track Changes" /> <telerik:EditorTool name="RejectAllTrackChanges" text="Reject All Track Changes" /> <telerik:EditorTool name="EnableTrackChangesOverride" text="Enable Track Changes Override" /> </telerik:EditorToolGroup> </Tools> </telerik:RadEditor> <script type="text/javascript"> (function () { var $E = Telerik.Web.UI.Editor; var utils = $E.Utils; var isTypingKey = utils.isTypingKey; utils.isTypingKey = function (e) { return e.keyCode != 13 && isTypingKey(e); } var extractFrom = $E.InsertParagraphCommand.prototype.extractFrom; $E.InsertParagraphCommand.prototype.extractFrom = function (cursor, container) { var newElement = extractFrom.call(this, cursor, container); if (!this.get_editor().get_enableTrackChanges() || utils.isTextNode(cursor.nextSibling)) return newElement; $telerik.$(newElement).find("*").each(function (index, item) { if ($E.TrackChangesUtils.isTrackChangeElement(item)) { if (utils.isTag(item, "ins") || utils.isTag(item, "del")) { utils.removeNode(item); return; } $E.TrackChangesUtils.removeNodeTracking(item); } }); return newElement; } }()); </script>
When adding nested list elements in the content, the user is able to go to parent element, press enter and add a sibling element. This element, as expected has a br tag that allows user to type text, but deleting this tag causes the list item to be not editable and the user is forced to go to HTML mode to modify the HTML code manually.
When user adds paragraph with formatting (e.g., Underline), this style is transferred to new lines automatically. The issue is when these paragraphs are empty. They contain an or <br> which is styled too, although this empty paragraphs should not be formatted until some text is inserted.
Instead of utilising 3rd party jQuery or the boring old ASP client-side form/field validation why don't you guys develop your own that has nice look and functionality similar to this: https://github.com/posabsolute/jQuery-Validation-Engine and you could also include a password strength indicator like this while your at it: http://git.aaronlumsden.com/strength.js/#demo Not hard and it would nicely complement your current suite of tools, especially if it was styled from skins.