一个文本区域中有两个插件

Two plugins in a textarea

本文关键字:插件 两个 文本 一个 区域      更新时间:2023-09-26

我需要在页面上的一个元素中使用两个插件。我从未需要这样做,并在下面的代码中尝试过。大多数都不起作用!

<script type="text/javascript">
$(document).ready(function() 
{
    var wbbOpt = {buttons: "bold,italic,underline,|,img,link,|,code,quote"}
    // plugin one wysibb
    $("#editor").wysibb(wbbOpt);
    // plugin two hashtags
    $("#editor").hashtags();
    //the two plugin worked in textarea #editor
});
</script>

有人能帮我吗?非常感谢。

所以您不能使用它们,因为它们每个都控制并包装文本区域。由于编辑器是两者中最复杂的,所以最好的做法是获取标签的代码并根据需要进行调整。

因此,这里有一个工作示例,但如果您愿意,您可以触发我用于更改事件的函数(添加它)或其他

<div id="higlighter" style="width;1217px;"></div>
<textarea id="editor"></textarea>
<br />
<input id="btn" type="button" value="HASH">
<br />
$(document).ready(function() {
var wbbOpt = {
buttons: "bold,italic,underline,|,img,link,|,code,quote"
};

$("#editor").wysibb(wbbOpt);    
$('#btn').click(function () { report() });
});

function report() {
    $("#hashtag").val($("#editor").htmlcode());
            var str = $("#editor").htmlcode();
            str = str.replace(/'n/g, '<br>');
            if(!str.match(/(http|ftp|https):'/'/['w-]+('.['w-]+)+(['w.,@?^=%&amp;:'/~+#-]*['w@?^=%&amp;'/~+#-])?#([a-zA-Z0-9]+)/g)) {
                if(!str.match(/#([a-zA-Z0-9]+)#/g)) {
                    str = str.replace(/#([a-zA-Z0-9]+)/g,'<span class="hashtag2">#$1</span>');
                }else{
                    str = str.replace(/#([a-zA-Z0-9]+)#([a-zA-Z0-9]+)/g,'<span class="hashtag2">#$1</span>');
                }
            }
            $("#editor").htmlcode(str);
}

您可以在jsfiddle上查看工作代码。http://jsfiddle.net/4kj7d6mh/2/

你可以键入文本并使用编辑器,当你想突出hastag时,你可以单击按钮。如果你想自动发生,你必须更改这一行:

 $('#btn').click(function () { report() });

并将该功能附加到按键上,例如(实验一点)