将文本插入Markitup文本编辑器

时间:2010-12-24 13:53:14

标签: jquery markitup

我写了一段代码

$(".ka_opinions_quote a").click(function(){
    var quoted_text = $(this).parents("div.o_opinion").find(".ka_opinion_txt").text();
    var cite_uri = $(this).parents("div.o_opinion").prev().find("a").attr("href");
    var curr_text = $(".editor").text();

    $(".editor").text(curr_text+'<quote cite="<?php echo mb_substr(JURI::base(), 0, -1); ?>'+cite_uri+'">'+quoted_text+'</quote>');
});

在textarea中单击文本后插入。但是,如果用户在textarea中插入或写入一些文本或删除文本,并在点击引用链接后,文本不显示在textarea但在Firebug中我看到但实际上文本已经存在

alt text

我是如何实现正确的文本插入的?

2 个答案:

答案 0 :(得分:1)

我修改了一个示例,它附带了markitup(请查看Markitup!中的 index.html )以及我们得到的内容:

<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.3.min.js"></script>
<script type="text/javascript" src="markitup/jquery.markitup.js"></script>
<script type="text/javascript" src="markitup/sets/default/set.js"></script>
<link rel="stylesheet" type="text/css" href="markitup/skins/markitup/style.css" />
<link rel="stylesheet" type="text/css" href="markitup/sets/default/style.css" />
</head>
<body>
<script type="text/javascript">
$(document).ready(function()    {
    $('#markItUp').markItUp(mySettings);
    $('.add').click(function() {
        $.markItUp( {   openWith:'<opening tag>',
                        closeWith:'<\/closing tag>',
                        placeHolder:document.getSelection()
                    }
                );
        return false;
    });
});
</script>
<p>Click <a href="#" class="add">this link to insert content</a> from anywhere in the page</p>
<p>
<textarea id="markItUp" cols="80" rows="20">
&lt;h1&gt;Welcome on markItUp!&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;markItUp!&lt;/strong&gt; is a JavaScript plugin built on the jQuery library. It allows you to turn any textarea into a markup editor. Html, Textile, Wiki Syntax, Markdown, BBcode or even your own markup system can be easily implemented.&lt;/p&gt;
</textarea>
</p>
</body>
</html>

您可以在textarea中设置光标位置,选择文本并单击链接“...添加内容...”。脚本只是将您选择的文本放入光标位置的textarea中。很抱歉使用 document.getSelection() - 在jQuery中找不到任何类似的实用程序函数=)

答案 1 :(得分:0)

取决于您使用的编辑器。 对于markItUp,你可以选择;

$.markItUp({ name:"YourWord", openWith:"[b]", closeWith:"[/b]" })
$.markItUp({ replaceWith: "yourCustomEntry" });