JavaScript를 사용하여 선택한 텍스트의 CSS 변경
웹페이지에서 선택한 텍스트를 강조 표시하는 북마크를 만들려고 노력하던 중 개발자가 다음과 같은 문제를 겪었습니다. 선택한 텍스트의 CSS를 변경하는 데 사용된 jQuery 코드가 아닌 문제 작동 중입니다.
원래 시도:
시도한 코드는 다음 함수를 사용했습니다.
function highlightSelText() { var SelText; if (window.getSelection) { SelText = window.getSelection(); } else if (document.getSelection) { SelText = document.getSelection(); } else if (document.selection) { SelText = document.selection.createRange().text; } $(SelText).css({'background-color' : 'yellow', 'font-weight' : 'bolder'}); }
해결책:
원본 코드의 문제는 jQuery가 CSS를 직접 수정할 수 없어서 발생했습니다. 선택한 텍스트. 보다 효과적인 접근 방식은 다양한 최신 브라우저에서 배경색을 변경하는 명령을 제공하는 execCommand() 메서드를 활용하는 것입니다.
다음 코드는 선택한 텍스트를 강조 표시하는 방법을 보여줍니다.
function makeEditableAndHighlight(colour) { var range, sel = window.getSelection(); if (sel.rangeCount && sel.getRangeAt) { range = sel.getRangeAt(0); } document.designMode = "on"; if (range) { sel.removeAllRanges(); sel.addRange(range); } if (!document.execCommand("HiliteColor", false, colour)) { document.execCommand("BackColor", false, colour); } document.designMode = "off"; } function highlight(colour) { var range, sel; if (window.getSelection) { // IE9 and non-IE try { if (!document.execCommand("BackColor", false, colour)) { makeEditableAndHighlight(colour); } } catch (ex) { makeEditableAndHighlight(colour) } } else if (document.selection && document.selection.createRange) { // IE <= 8 case range = document.selection.createRange(); range.execCommand("BackColor", false, colour); } }
이 업데이트된 코드는 선택 항목이 여러 요소에 걸쳐 있는지 여부에 관계없이 선택한 텍스트의 배경색을 성공적으로 변경합니다.
위 내용은 JavaScript로 선택한 텍스트의 CSS를 변경하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!