在我的项目中,我使用了TinyMCE文本编辑器。我还有一个按钮,当单击该按钮时,我的javascript代码会将按钮中的值复制到文本编辑器中。
例如:如果按钮值为[first_name]
,则单击按钮会将文本[first_name]
(wordpress中的短代码格式)放入文本编辑器。>
可以,但是现在我将按钮值从[first_name]
更改为<<first_name>>
。当我单击按钮时,应该将<<first_name>>
放到文本编辑器中,但是只放<>
。由于文本编辑器将<<first_name>>
视为HTML标记,因此无法充分发挥价值。
此外,我尝试使用诸如<
和>
之类的HTML实体,但是它也不起作用。
注意:它不应是源代码编辑器。它必须是一个简单的文本编辑器。
有人可以指导我如何解决此问题吗?
我的HTML代码:
按钮部分-
<div class="panel-body">
<div class="col-md-6" style="margin-bottom: 10px;">
<a class="btn btn-primary sInput_netadvimage" href="<<first_name>>" style="width: 100%">FIRST NAME</a>
</div>
<div class="col-md-6" style="margin-bottom: 10px;">
<a class="btn btn-primary sInput_netadvimage" href="<<company_name>>" style="width: 100%">COMPANY NAME</a>
</div>
</div>
</div>
文本编辑器部分
<textarea name="content[]" id="tedit-1" class="tmeditor contentfield" name="area"></textarea>
jQuery部分
$(document.body).on('blur', '.contentfield', function() {
currentreplaceelement = $(this);
});
$(document.body).on('click', ".sInput_netadvimage", function(e) {
e.preventDefault();
var code = $(this).attr('href');
alert(code);
if (currentreplaceelement != '') {
if (currentreplaceelement.hasClass('subjectfield')) {
var a = currentreplaceelement.val();
var output = [a.slice(0, currentreplaceposition), code, a.slice(currentreplaceposition)].join('');
currentreplaceelement.val(output);
// currentreplaceelement = '';
// currentreplaceposition = '';
} else {
tinymce.activeEditor.execCommand('mceInsertContent', false, code);
}
} else {
tinymce.activeEditor.execCommand('mceInsertContent', false, code);
}
});
答案 0 :(得分:1)
您已经注意到,<>之间的所有内容都被视为tinymce中的html标签。
在将href
本身中的字符串更改为使用<
和>
的过程中,在将其插入编辑器之前,它也将转换为<
和>
不过,您可以直接将<
和>
插入编辑器,并且可以根据需要运行。
添加此功能可将<
和>
转换为<
和>
:
function convertCode(code) {
return String(code).replace('<', '<').replace('>', '>');
}
,然后在将code
插入tinymce中时调用它,如下所示:
tinymce.activeEditor.execCommand('mceInsertContent', false, convertCode(code));
以前对我有用,所以我确定它在这里也能使用。