1

我知道这里有很多类似的问题,甚至在某种程度上我自己也对此有所了解——但我正在为这个特定的代码而苦苦挣扎,作为一个 JS 新手,我不知道我在哪里我错了。

我基本上是在调整 TinyMCE 以摆脱弹出对话框(用我自己的替换它们,以保持干净)。我现在正在做的工作是插入图像。这是我现在的功能;

<script type="text/javascript">
function addImage(imgurl){
tinyMCE.execCommand('mceInsertContent',false,'<img src=" +imgurl+ " style="float:left; margin: 0    5px 5px 0;" />');
}
</script>

和链接

<a href="javascript:;" onclick="addImage('/myimage.jpg');return false;">[Insert Image]</a>

函数“有效”是因为它插入了代码,但没有传递“imgurl”(在本例中为 myimage.jpg) - 而不是插入 /myimage.jpg,而是插入了 +imgurl+。

非常感谢这个新手的指点!

4

3 回答 3

3

你的连接不正确......用单引号打开时,用单引号连接。使用双引号时,请使用双引号。

function addImage(imgurl){
     tinyMCE.execCommand('mceInsertContent',false,'<img src="'+imgurl+'" style="float:left; margin: 0 5px 5px 0;" />');
}

您可以找到大量深入解释串联的简单教程。一般规则是一致的。如果将字符串用双引号括起来,单引号不会停止对字符串的解析,因为编译器会识别双引号来执行此操作。单引号也是如此。下面的代码将解析Hello'; // broken string为字符串,就像使用错误的引号进行连接一样。

var string = "Hello'; // broken string

避免此类问题的一个好方法(因为即使是专业的程序员也会时不时地遇到语法错误)是使用具有语法突出显示的良好编程编辑器(notepad++、sublime 2、coda、textmate、phpad)。即使是 stackoverflow.com 的简单荧光笔也足够了。通过查看上面的代码,您可以看出双引号 ( ") 之后的所有内容仍然被解析为字符串,因为它仍然与字符串相同的颜色,而变量在通过语法荧光笔时会改变颜色。

于 2012-08-25T13:53:09.153 回答
1

你传递变量就好了。问题是你不是连接它的值,而是一个带有 value 的字符串+imgurl+。请改用以下内容(注意'之前和之后的关闭和开始+ imgurl +

tinyMCE.execCommand('mceInsertContent',false,'<img src="' +imgurl+ '" style="float:left; margin: 0    5px 5px 0;" />');
于 2012-08-25T13:52:22.550 回答
0

您的字符串格式不正确:

'<img src="' + imgurl + '" style="float:left margin: 0 5px 5px 0;" />';
于 2012-08-25T13:52:41.920 回答