当使用硬编码字符串作为参数以及使用具有该值的变量时,方法返回不同的值

时间:2012-10-10 12:09:09

标签: javascript tinymce

此:

str = "test                 test"
ed.selection.setContent(str);//1

与此不同:

ed.selection.setContent("test                 test");//2

我正在使用文本编辑器,而setContent在文本框中设置值。 1将文本框中的值设置为

"test test"

和2将其设置为

"test                 test".

我只能在程序中使用变量,而不能使用硬编码的值。我该怎么办?为什么会这样?

3 个答案:

答案 0 :(得分:1)

不,它没有任何区别。如果行为确实异常,则对全局变量str的赋值会与其余代码混淆。通过添加var关键字将其设为本地。

答案 1 :(得分:1)

您使用的是tinyMCE吗? (请重新提出你的问题)
Their DOCs specificy

  

这将在使用不同的内容设置之前清除内容   清理规则选项

尝试在字符串后添加{format : 'raw'},如下所示:

ed.selection.setContent("test                 test", {format : 'raw'});

在两个帐户上,看看它是否有帮助。

编辑(最后,我希望):
在将其插入函数之前使用str = str.replace(/\s/g, ' '); 您可以对其进行测试here,这应该可行。

答案 2 :(得分:0)

这里的问题是一次插入多个空格(不是每个键盘)会让浏览器将它们显示为一个单独的空间。

如果用户输入空格,则会有一些空格作为受保护空格输入,以欺骗浏览器行为。插入未使用setContent方法的内容时,您需要使用受保护的空间替换每个第二个空格,以获得相同的外观。