gpt4 book ai didi

javascript - jQuery fieldselection ReplaceSelection 不适合我

转载 作者:行者123 更新时间:2023-11-28 10:09:05 28 4
gpt4 key购买 nike

嗨,这是简单的 jquery fieldselection 插件。

   /*
* jQuery plugin: fieldSelection - v0.1.1 - last change: 2006-12-16
* (c) 2006 Alex Brem <alex@0xab.cd> - http://blog.0xab.cd
*/

(function() {

var fieldSelection = {

getSelection: function() {

var e = (this.jquery) ? this[0] : this;

return (

/* mozilla / dom 3.0 */
('selectionStart' in e && function() {
var l = e.selectionEnd - e.selectionStart;
return { start: e.selectionStart, end: e.selectionEnd, length: l, text: e.value.substr(e.selectionStart, l) };
}) ||

/* exploder */
(document.selection && function() {

e.focus();

var r = document.selection.createRange();
if (r === null) {
return { start: 0, end: e.value.length, length: 0 }
}

var re = e.createTextRange();
var rc = re.duplicate();
re.moveToBookmark(r.getBookmark());
rc.setEndPoint('EndToStart', re);

return { start: rc.text.length, end: rc.text.length + r.text.length, length: r.text.length, text: r.text };
}) ||

/* browser not supported */
function() { return null; }

)();

},

replaceSelection: function() {

var e = (typeof this.id == 'function') ? this.get(0) : this;
var text = arguments[0] || '';

return (

/* mozilla / dom 3.0 */
('selectionStart' in e && function() {
e.value = e.value.substr(0, e.selectionStart) + text + e.value.substr(e.selectionEnd, e.value.length);
return this;
}) ||

/* exploder */
(document.selection && function() {
e.focus();
document.selection.createRange().text = text;
return this;
}) ||

/* browser not supported */
function() {
e.value += text;
return jQuery(e);
}

)();

}

};

jQuery.each(fieldSelection, function(i) { jQuery.fn[i] = this; });

})();

我不明白为什么这样做时 textarea 元素中的选定文本不会被替换。

$('.wysiwyg-editor-italic').live('click',function(){
var _selection = $('.wysiwyg textarea').getSelection().text;
var wcode = "";

if(_selection){
$('.wysiwyg textarea').replaceSelection("{italic}"+_selection+"{/italic}");
console.log(_selection);
}
else{
wcode = "{italic} italic {/italic}";
}
var wysiwyg_val = $('.wysiwyg textarea').val();

$('.wysiwyg textarea').val("").val(wysiwyg_val+wcode);
$('.wysiwyg-preview').html(wysiwyg_val);
$('.wysiwyg textarea').focus();



refresh_preview()
});

在控制台中我可以看到_selection,这是可以的,但之后没有被替换......也许我错过了一些东西?

最佳答案

不幸的是,这似乎是库上的一个错误。

我也受到这个错误的影响。除了replaceSelection() 部分之外,一切都检测到并且工作得很好。我最终使用了 Rangyinputs 。有一天,当我有空闲时间时,我会尝试修复 Fieldselection 和 Pull request 上的这个错误。

关于javascript - jQuery fieldselection ReplaceSelection 不适合我,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7745180/

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