|
<head>
. . .
<script src="~/jsinterop.js"></script>
</head> |
|
@using Syncfusion.Blazor.RichTextEditor
@using Syncfusion.Blazor.Buttons
<SfButton OnClick="@addContent">Set Cursor Pointer</SfButton>
<SfRichTextEditor ID="defaultRTE" Value="@rteValue" Height="500px" Width="100%">
</SfRichTextEditor>
@code {
[Inject]
IJSRuntime JsRuntime { get; set; }
public string rteValue = "<p>The Rich Text Editor is WYSIWYG ('what you see is what you get') editor useful to create and edit content, and return the valid <a rel='nofollow' href='https://ej2.syncfusion.com/home/' target='_blank'>HTML markup</a> or <a rel='nofollow' href='https://ej2.syncfusion.com/home/' target='_blank'>markdown</a> of the content</p><p id='key'><b>Key features:</b></p><ul><li><p>Provides <IFRAME> and <DIV> modes</p></li><li><p>Capable of handling markdown editing.</p></li><li><p>Contains a modular library to load the necessary functionality on demand.</p></li><li><p>Provides a fully customizable toolbar.</p></li></ul>";
public void addContent()
{
JsRuntime.InvokeAsync<string>("RichTextEditor.setCursorPointer");
}
} |
|
window.RichTextEditor = {
setCursorPointer: function () {
var rteInstance = document.getElementById('defaultRTE').blazor__instance;
var element = rteInstance.inputElement.querySelector('#key');
var range = document.createRange();
range.setStart(element, 1)
rteInstance.formatter.editorManager.nodeSelection.setRange(document, range);
}
} |
|
window.RichTextEditor = {
setCursorPointer: function () {
var rteInstance = document.getElementById('defaultRTE').blazor__instance;
var element = rteInstance.inputElement.querySelector('#key');
var range = document.createRange();
range.setStart(element, 1)
rteInstance.formatter.editorManager.nodeSelection.setRange(document, range);
element.scrollIntoView();
}
} |
|
window.RichTextEditor = {
getCursorPointer: function () {
var rteInstance = document.getElementById('defaultRTE').blazor__instance;
var element = rteInstance.inputElement
var caretOffset = 0;
var range = window.getSelection().getRangeAt(0);
var preCaretRange = range.cloneRange();
preCaretRange.selectNodeContents(element);
preCaretRange.setEnd(range.endContainer, range.endOffset);
caretOffset = preCaretRange.toString().length;
return caretOffset;
}
} |