使用javascript为TinyMCE编辑器编码textarea中的输入

时间:2012-03-23 06:02:11

标签: javascript wordpress

这很复杂。我不能直接把它说成文字。所以这就是我的问题 -

我有这个基于WordPress TinyMCE编辑器的短代码生成器表单,它基本上是一个HTML文档。它有两个<textarea></textarea>输入。当用户点击“插入短代码”时,此页面上的javascript代码会填充短代码并将其插入到WordPress的编辑器中。

现在,如果用户插入类似 -

的内容

>>>This is an "amazing post"! You can't wait to get your hands on it.<<<

在textarea中的一个,短代码生成相应的属性 -

c_text=">>>This is an "amazing post"! You can't wait to get your hands on it.<<<"

这个带有其他属性的短代码随后由WordPress保存到数据库中。当它在前端被检索时,WordPress中的add_shortcode()函数会混淆一切,这在>,<,',"

中存在c_text时非常明显

PHP中一个显而易见的选择是将htmlentitiesENT_QUOTES一起使用,但在这种情况下如何做到这一点?使用phpjs equivalent function意味着包含大量的javascript。如何有效地做到这一点?

UPDATE :我尝试使用phpjs等效函数。它正确地进行转换。但是,引号被WordPress取代。 示例 - 我放了一个随机字符串<> <test> <<><<<>><<> ' <"">?sdg#@Y^#ASCST#@Y^

并且console.log(htmlentities(string,'ENT_QUOTES'));,记录了

&lt;&gt; &lt;test&gt; &lt;&lt;&gt;&lt;&lt;&lt;&gt;&gt;&lt;&lt;&gt; &#039; &lt;&quot;&quot;&gt;?sdg#@Y^#ASCST#@Y^

这是正确的。但是,当我查看切换到TinyMCE的HTML视图时,显示

&lt;&gt; &lt;test&gt; &lt;&lt;&gt;&lt;&lt;&lt;&gt;&gt;&lt;&lt;&gt; ' &lt;""&gt;?sdg#@Y^#ASCST#@Y^

引号被TinyMCE取代。

1 个答案:

答案 0 :(得分:0)

我最终使用了urlencode功能,但效果很好。