Fix emoji JS in the admin
This commit is contained in:
parent
d16628195d
commit
f2e28e89f8
2 changed files with 33 additions and 34 deletions
32
app/static/new.js
Normal file
32
app/static/new.js
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
// The new post textarea
|
||||||
|
var ta = document.getElementsByTagName("textarea")[0];
|
||||||
|
// Helper for inserting text (emojis) in the textarea
|
||||||
|
function insertAtCursor (textToInsert) {
|
||||||
|
ta.focus();
|
||||||
|
const isSuccess = document.execCommand("insertText", false, textToInsert);
|
||||||
|
|
||||||
|
// Firefox (non-standard method)
|
||||||
|
if (!isSuccess) {
|
||||||
|
// Credits to https://www.everythingfrontend.com/posts/insert-text-into-textarea-at-cursor-position.html
|
||||||
|
// get current text of the input
|
||||||
|
const value = ta.value;
|
||||||
|
// save selection start and end position
|
||||||
|
const start = ta.selectionStart;
|
||||||
|
const end = ta.selectionEnd;
|
||||||
|
// update the value with our text inserted
|
||||||
|
ta.value = value.slice(0, start) + textToInsert + value.slice(end);
|
||||||
|
// update cursor to be at the end of insertion
|
||||||
|
ta.selectionStart = ta.selectionEnd = start + textToInsert.length;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Emoji click callback func
|
||||||
|
var ji = function (ev) {
|
||||||
|
insertAtCursor(ev.target.attributes.alt.value + " ");
|
||||||
|
ta.focus()
|
||||||
|
//console.log(document.execCommand('insertText', false /*no UI*/, ev.target.attributes.alt.value));
|
||||||
|
}
|
||||||
|
// Enable the click for each emojis
|
||||||
|
var items = document.getElementsByClassName("ji")
|
||||||
|
for (var i = 0; i < items.length; i++) {
|
||||||
|
items[i].addEventListener('click', ji);
|
||||||
|
}
|
|
@ -46,38 +46,5 @@
|
||||||
</p>
|
</p>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
<script>
|
<script src="/static/new.js"></script>
|
||||||
// The new post textarea
|
|
||||||
var ta = document.getElementsByTagName("textarea")[0];
|
|
||||||
// Helper for inserting text (emojis) in the textarea
|
|
||||||
function insertAtCursor (textToInsert) {
|
|
||||||
ta.focus();
|
|
||||||
const isSuccess = document.execCommand("insertText", false, textToInsert);
|
|
||||||
|
|
||||||
// Firefox (non-standard method)
|
|
||||||
if (!isSuccess) {
|
|
||||||
// Credits to https://www.everythingfrontend.com/posts/insert-text-into-textarea-at-cursor-position.html
|
|
||||||
// get current text of the input
|
|
||||||
const value = ta.value;
|
|
||||||
// save selection start and end position
|
|
||||||
const start = ta.selectionStart;
|
|
||||||
const end = ta.selectionEnd;
|
|
||||||
// update the value with our text inserted
|
|
||||||
ta.value = value.slice(0, start) + textToInsert + value.slice(end);
|
|
||||||
// update cursor to be at the end of insertion
|
|
||||||
ta.selectionStart = ta.selectionEnd = start + textToInsert.length;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Emoji click callback func
|
|
||||||
var ji = function (ev) {
|
|
||||||
insertAtCursor(ev.target.attributes.alt.value + " ");
|
|
||||||
ta.focus()
|
|
||||||
//console.log(document.execCommand('insertText', false /*no UI*/, ev.target.attributes.alt.value));
|
|
||||||
}
|
|
||||||
// Enable the click for each emojis
|
|
||||||
var items = document.getElementsByClassName("ji")
|
|
||||||
for (var i = 0; i < items.length; i++) {
|
|
||||||
items[i].addEventListener('click', ji);
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
Loading…
Reference in a new issue