Set spellcheck attribute to false via JS

This commit is contained in:
Aljaž Grilc 2024-02-21 13:48:50 +01:00
parent 26539b8c10
commit cee4cb90a8
2 changed files with 14 additions and 9 deletions

View File

@ -9,10 +9,10 @@
</head>
<body>
<!--<div class="bes-online-editor" contenteditable="true">Tukaj vpišite besedilo ki ga želite popraviti.</div>
<br>
<br>-->
<div class="bes-online-editor" contenteditable="true"></div>
<br>
<div class="bes-online-editor" contenteditable="true"><div>Popravite kar želite.</div></div>
<br />
<!--<div class="bes-online-editor" contenteditable="true"><div>Popravite kar želite.</div></div>
<br>
<div class="bes-online-editor" contenteditable="true"><div>Popravite <a href=".">kar želite</a>.</div><div>Na mizo nisem položil knjigo. Popravite kar želite.</div></div>
<br>-->
@ -21,10 +21,10 @@
<!-- <div class="bes-online-editor" contenteditable="true"><div class="contextual"><p>Madžarski premier Orban je tako očitno vendarle pristal na nadaljnjo makrofinančno pomoč Ukrajini v okviru revizije dolgoročnega proračuna unije 2021-2027. Ta vključuje 50 milijard evrov za Ukrajino za prihodnja štiri leta, od tega 33 milijard evrov posojil in 17 milijard evrov nepovratnih sredstev.</p></div></div>
<br>-->
<!-- <div class="bes-online-editor" contenteditable="true"><div>Popravite kar želite.</div><div>Na mizo nisem položil knjigo. Popravite kar želite.</div></div> -->
<br>
<div class="bes-online-editor" contenteditable="true" spellcheck="false" ><div>Popravite kar želite.</div><div>Na mizo nisem položil knjigo. Popravite kar želite.</div><div>Popravite kar želite.</div><div>Na mizo nisem položil knjigo. Popravite kar želite. Na mizo nisem položil knjigo.</div><div>Popravite kar želite.</div><div>Na mizo nisem položil knjigo. Popravite kar želite.</div><div>Popravite kar želite.</div><div>Na mizo nisem položil knjigo. Popravite kar želite.</div><div>Popravite kar želite.</div><div>Na mizo nisem položil knjigo. Popravite kar želite.</div><div>Popravite kar želite.</div><div>Na mizo nisem položil knjigo. Popravite kar želite.</div><div>Popravite kar želite.</div><div>Na mizo nisem položil knjigo. Popravite kar želite.</div><div>Popravite kar želite.</div><div>Na mizo nisem položil knjigo. Popravite kar želite.</div><div>Popravite kar želite.</div><div>Na mizo nisem položil knjigo. Popravite kar želite.</div></div>
<!-- <br>
<div class="bes-online-editor" contenteditable="true"><div>Popravite kar želite.</div><div>Na mizo nisem položil knjigo. Popravite kar želite.</div><div>Popravite kar želite.</div><div>Na mizo nisem položil knjigo. Popravite kar želite. Na mizo nisem položil knjigo.</div><div>Popravite kar želite.</div><div>Na mizo nisem položil knjigo. Popravite kar želite.</div><div>Popravite kar želite.</div><div>Na mizo nisem položil knjigo. Popravite kar želite.</div><div>Popravite kar želite.</div><div>Na mizo nisem položil knjigo. Popravite kar želite.</div><div>Popravite kar želite.</div><div>Na mizo nisem položil knjigo. Popravite kar želite.</div><div>Popravite kar želite.</div><div>Na mizo nisem položil knjigo. Popravite kar želite.</div><div>Popravite kar želite.</div><div>Na mizo nisem položil knjigo. Popravite kar želite.</div><div>Popravite kar želite.</div><div>Na mizo nisem položil knjigo. Popravite kar želite.</div></div> -->
<!-- <br />
<textarea class="bes-online-editor" spellcheck="false"></textarea> -->
<textarea class="bes-online-editor"></textarea> -->
<bes-popup-el></bes-popup-el>
</body>
</html>
@ -43,5 +43,4 @@
font-family: Arial, Helvetica, sans-serif;
z-index: 2;
}
</style>

View File

@ -11,6 +11,7 @@ class BesEditor {
this.correctionPanel = correctionPanel
this.scrollPanel = scrollPanel
this.offsetTop = null
this.disableSpellcheck(edit)
this.proof(edit)
edit.addEventListener('beforeinput', e => this.handleBeforeInput(e), false)
edit.addEventListener('click', e => this.handleClick(e))
@ -26,11 +27,16 @@ class BesEditor {
return editor
}
// Set spellcheck to false
disableSpellcheck(edit) {
edit.spellcheck = false
}
// TODO: add support for textarea elements
// Recursively grammar-proofs one node.
async proof(el) {
// If first child is not a block element, add a dummy <div>...</div> around it.
// This is solution is still not fully tested and might need some improvements.
// This solution is still not fully tested and might need some improvements.
if (el.classList?.contains('bes-online-editor')) {
const firstChild = el.firstChild
if (