我知道这里有很多类似的问题,甚至我在某种程度上对此有所了解 - 但我正在努力解决这个特定代码,并作为一个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 +。< / p>
这位新手非常赞赏指针!
答案 0 :(得分: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的简单荧光笔也足够了。只需查看上面的代码,您就可以看出双引号("
)之后的所有内容仍然被解析为字符串,因为它仍然是与字符串相同的颜色,而变量在通过时会改变颜色语法荧光笔。
答案 1 :(得分:1)
你传递变量就好了。问题是你是不连接它的值,而是一个值为+imgurl+
的字符串。请改用以下内容(请注意'
之前和之后的结束+ imgurl +
:
tinyMCE.execCommand('mceInsertContent',false,'<img src="' +imgurl+ '" style="float:left; margin: 0 5px 5px 0;" />');
答案 2 :(得分:0)
您的字符串格式不正确:
'<img src="' + imgurl + '" style="float:left margin: 0 5px 5px 0;" />';