gpt4 book ai didi

javascript - 如何在 javascript 中使选定的文本变为粗体/斜体/下划线?

转载 作者:搜寻专家 更新时间:2023-11-01 05:29:11 26 4
gpt4 key购买 nike

我正在尝试开发一个允许用户为学校项目编写自己的笔记的网页,我的想法是让他们使用按钮将文本加粗/斜体化/下划线。截至目前,这些按钮可以正常工作,但它们会将文本区域内的所有内容加粗/斜体/加下划线。相反,我希望它以这样一种方式工作,即只有他们突出显示的文本才会变为粗体/斜体/下划线。我还想知道如何做到这一点,当他们单击粗体按钮时,他们从那时起输入的文本将显示为粗体,当他们再次单击它时,从那时起输入的文本将显示出来正常。

<script type="text/javascript">
function boldText(){
var target = document.getElementById("TextArea");
if( target.style.fontWeight == "bolder" ) {
target.style.fontWeight = "normal";
} else {
target.style.fontWeight = "bolder";
}
}



function italicText(){
var target = document.getElementById("TextArea");
if( target.style.fontStyle == "italic" ) {
target.style.fontStyle = "normal";
} else {
target.style.fontStyle = "italic";
}
}

function underlineText(){
var target = document.getElementById("TextArea");
if( target.style.textDecoration == "underline" ) {
target.style.textDecoration = "none";
} else {
target.style.textDecoration = "underline";
}
}
</script>

最佳答案

您可以使用 execCommand() .该 API 用于开发文本编辑器。这 3 个按钮使用非常通用的 execCommand() 并且书写元素是一个普通的 div,它启用了属性 contenteditable .

片段

<!DOCTYPE html>
<html>

<head>
<meta charset='utf-8'>
<style>
:root {
font: 400 2ch/1.25 Consolas;
}

body {
font-size: 2ch
}

#editor {
height: 100px;
width: 375px;
margin: 10px auto 0;
}

fieldset {
margin: 2px auto 15px;
width: 375px;
}

button {
width: 5ex;
text-align: center;
padding: 1px 3px;
}
</style>
</head>
<body>
<fieldset id="editor" contenteditable="true">
The quick brown fox jumped over the lazy dog.
</fieldset>
<fieldset>
<button class="fontStyle" onclick="document.execCommand('italic',false,null);" title="Italicize Highlighted Text"><i>I</i>
</button>
<button class="fontStyle" onclick="document.execCommand( 'bold',false,null);" title="Bold Highlighted Text"><b>B</b>
</button>
<button class="fontStyle" onclick="document.execCommand( 'underline',false,null);" title='Underline Highlighted Text'><u>U</u>
</button>
</fieldset>
</body>

</html>

关于javascript - 如何在 javascript 中使选定的文本变为粗体/斜体/下划线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38218268/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com