使用javascript将所选文本设置为粗体
我的标记中有一个文本:使用javascript将所选文本设置为粗体,javascript,jquery,range,Javascript,Jquery,Range,我的标记中有一个文本: <div> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum condimentum consectetur tellus, at bibendum felis ultrices eu. Nullam nibh urna, euismod a blandit ut, fermentum a leo. Maecenas pharetra elementum fringilla.
<div>
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Vestibulum condimentum consectetur tellus, at bibendum felis ultrices eu.
Nullam nibh urna, euismod a blandit ut, fermentum a leo. Maecenas pharetra elementum fringilla.
Quisque condimentum, nibh quis elementum porttitor, magna libero malesuada dolor, ut feugiat tortor lectus ac turpis. Integer tristique molestie enim, sit amet commodo risus tempus non.
</div>
请注意简单的查找/替换不起作用,如果用户选择了一个字母“A”,并且可以在文本中找到10次,我想突出显示他选择的唯一字母“A”。我研究过射程物体,但不知道如何实现,请帮我解决
请参见演示。也许这可以帮助您:
其中一个问题正是您所追求的。也许这可以帮助您:
其中一个正是您想要的。您可以使用
document.execCommand()
来实现此目的。下面是我对一个类似问题的回答:您可以使用document.execCommand()
来实现此目的。下面是我对一个类似问题的回答:这是有效的(在Chrome中),但只要它只被调用一次
(运行代码在)
$(文档)。按键(功能(e){
如果(e.which==13&&e.ctrlKey){
var s=getSelection();
var i=基准偏移量;
var j=s.extentOffset;
var t=$('div').text();
var t0=t.子串(0,i)+”+
t、 子串(i,j)+”+
t、 子串(j);
$('div').html(t0);
}
});
它只工作一次的原因是它修改DOM以添加标记,这意味着下次选择偏移量和元素不连续。我仍然在看…这是可行的(在Chrome中),但只要它只被调用一次
(运行代码在)
$(文档)。按键(功能(e){
如果(e.which==13&&e.ctrlKey){
var s=getSelection();
var i=基准偏移量;
var j=s.extentOffset;
var t=$('div').text();
var t0=t.子串(0,i)+”+
t、 子串(i,j)+”+
t、 子串(j);
$('div').html(t0);
}
});
它只工作一次的原因是它修改DOM以添加标记,这意味着下次选择偏移量和元素不连续。我还在看那个
function getSelectedText () {
if (window.getSelection) {
return window.getSelection ().toString ();
}
else {
if (document.selection) {
return document.selection.createRange ().text;
}
}
return '';
}
$ (document).ready (function() {
// User pressed a key
$ (document).keydown (function(e) {
// is it CTRL+ENTER?
if (e.which == 13 && e.ctrlKey) {
alert('You have selected ' + getSelectedText ());
// now I need to highlight the text I got
// ????
}
});
});
$(document).keypress(function(e) {
if (e.which == 13 && e.ctrlKey) {
var s = getSelection();
var i = s.baseOffset;
var j = s.extentOffset;
var t = $('div').text();
var t0 = t.substring(0, i) + '<span class="b">' +
t.substring(i, j) + '</span>' +
t.substring(j);
$('div').html(t0);
}
});