3 回答

TA貢獻1891條經驗 獲得超3個贊
我認為你需要的是CSS,而不是任何JS腳本:
您可以使用屬性:::selection
你可以運行下面的代碼片段( 代碼參考和更多),希望這會幫助你
.example-color::selection {
color: #8e44ad;
}
.example-background-color::selection {
background-color: #f1c40f;
}
.example-background::selection {
background: #e74c3c;
}
.example-both::selection {
background-color: #8e44ad;
color: white;
}
.example-shadow::selection {
text-shadow: 1px 1px 0 #27ae60;
}
.example-input::selection {
background: #2ecc71;
}
.example-textarea::selection {
background: #34495e;
color: white;
}
body {
font-family: 'Source Sans Pro', Arial, sans-serif;
line-height: 1.45;
background: #E0DCCC;
color: #333;
padding: 1em;
font-size: 18px;
}
p,input,textarea {
margin-bottom: 1em;
}
input,textarea {
display: block;
font-size: 1em;
font-family: inherit;
}
<p>Select me to see normal behavior.</p>
<p class='example-color'>Try selecting me for a different text color.</p>
<p class='example-background-color'>You can select me for a different background color.</p>
<p class='example-background'>You can also select me for a different background.</p>
<p class='example-both'>Guess what… you can select me for a different background color and text color.</p>
<p class='example-shadow'>How about a text-shadow? Sure, select me for a different text-shadow.</p>
<p class='example-background-color'>
What about nest elements? Select me for a different background color.
<span class='example-color'>And this sentence is just a color selection.</span>
Nesting works!
</p>
<input class='example-input' type='text' value='Inputs work!*'>
<textarea class='example-textarea' cols='30' name='' rows='10'>Textarea, too!*</textarea>
<div class='foot-notes'>*not Safari</div>

TA貢獻1876條經驗 獲得超5個贊
最后,經過一天的谷歌搜索,我能夠實現這一目標。萬一將來有人需要這個:P我所做的是 - 使包裝器div與內容可編輯真實并使用document.execCommand api進行所需的自定義。注意:但是我不會讓用戶在下面的處理程序中使用 preventDefault 編輯內容
onCut={(e)=>e.preventDefault()}
onPaste={(e)=>e.preventDefault()}
onKeyPress={(e)=>e.preventDefault()}
onKeyDown={(e)=>e.preventDefault()}``` Thanks for helping

TA貢獻1875條經驗 獲得超5個贊
你可以借助CSS,如果CSS可以處理某些事情,請不要去JS。在樣式表中添加此樣式
::selection {
color: red;
background: yellow;
}
添加回答
舉報