主题: 调用单独批量上传后。再把图片插入大编辑器。提示错误。 |
作者: 小浪子, 发布日期: 2012-10-09 08:54:01, 浏览数: 3429 |
首先是可以获取到编辑器的对象的。
函数代码: function UpLoadMulti(Path, UpLoadId, DispId, ObjEditor, En, Es) { var UpLoadJsonUrl, StrTemp, StrRnd; UpLoadJsonUrl = Path + 'Inc/UpLoad.Asp?Action=SaveLoadMain&smode=1&sdir=' + UpLoadId; var EditorUpLoad = KindEditor.editor({ allowFileManager: true, uploadJson: UpLoadJsonUrl }); EditorUpLoad.loadPlugin('multiimage', function() { EditorUpLoad.plugin.multiImageDialog({ clickFn: function(urlList) { var MakePic; KindEditor.each(urlList, function(i, data) { StrTemp = ''; StrRnd = ''; StrRnd = genRandNumber(10000, 999999); if (data.ThumbPic != '') { MakePic = data.ThumbPic; } else { MakePic = data.url; } StrTemp += '<li id="n' + StrRnd + '">'; StrTemp += '<img src="' + MakePic + '" />'; StrTemp += '<p>'; StrTemp += '<input name="UpImagesUrl" type="hidden" value="' + data.url + '" />'; StrTemp += '<input name="UpImagesTitle" type="text" style="width:110px;" /><br />'; StrTemp += '<a href="javascript:void(0);" onclick="RemoveImages(\'n' + StrRnd + '\',\'../\',\'' + data.url + '\');return false;">删除</a> '; StrTemp += '<a href="javascript:void(0);" onclick="InValue(\'ImageUrl\',\'' + data.url + '\');return false;">设为封面</a>'; if (ObjEditor != '' && ObjEditor != null) { alert(MakePic + '|' + ObjEditor); //可以获取到编辑器的对象和值,如:/UpLoadPic/Pro/Images/20121009085085868586s.jpg|[object Object] //似乎提示下面错误, 缺少 ']' StrTemp += '<br /><a href="javascript:void(0);" onclick="InEditorVal(' + ObjEditor + ',\'' + MakePic + '\',1);return false;">插入到编辑器</a>'; } StrTemp += '</p>'; StrTemp += '</li>'; $('#' + DispId).append(StrTemp); }); EditorUpLoad.hideDialog(); } }); }); } function InEditorVal(ObjEditor, Value, IsPic) { if (Value != '' && Value != null) { if (IsPic = 1) { ObjEditor.insertHtml('<img src="' + Value + '" border="0" />'); } else { ObjEditor.insertHtml(Value); } } }
调用:UpLoadMulti('../',4,'imageView',editor,0,0);
再说明。是可以获取到编辑器的对象的。通过函数传递的:editor |
作者: Roddy, 发布日期: 2012-10-09 10:35:57 |
ObjEditor是object,不能拼接字符串的。建议用K('#btn').click()绑定。 |
回复 |
作者: 小浪子, 发布日期: 2012-10-09 11:59:01 |
回复Roddy:但是这样调用很方便。如果是你说的那样。应该怎么写呢?
|
回复 |
作者: Roddy, 发布日期: 2012-10-09 12:16:19 |
回复小浪子:
StrTemp += '<br /><a href="javascript:void(0);" id="J_insertToEditor">插入到编辑器</a>';
$('#' + DispId).append(StrTemp);以后
K('#J_insertToEditor').click(function() { InEditorVal(ObjEditor, MakePic, 1); }); |
回复 |
作者: 小浪子, 发布日期: 2012-10-09 13:22:02 |
回复Roddy:
function UpLoadMulti(Path, UpLoadId, DispId, ObjEditor, En, Es) { var UpLoadJsonUrl, StrTemp, StrRnd; UpLoadJsonUrl = Path + 'Inc/UpLoad.Asp?Action=SaveLoadMain&smode=1&sdir=' + UpLoadId; var EditorUpLoad = KindEditor.editor({ allowFileManager: true, uploadJson: UpLoadJsonUrl }); EditorUpLoad.loadPlugin('multiimage', function() { EditorUpLoad.plugin.multiImageDialog({ clickFn: function(urlList) { var MakePic; KindEditor.each(urlList, function(i, data) { StrTemp = ''; StrRnd = ''; StrRnd = genRandNumber(10000, 999999); if (data.ThumbPic != '') { MakePic = data.ThumbPic; } else { MakePic = data.url; } StrTemp += '<li id="n' + StrRnd + '">'; StrTemp += '<img src="' + MakePic + '" />'; StrTemp += '<p>'; StrTemp += '<input name="UpImagesUrl" type="hidden" value="' + data.url + '" />'; StrTemp += '<input name="UpImagesTitle" type="text" style="width:110px;" /><br />'; StrTemp += '<a href="javascript:void(0);" onclick="RemoveImages(\'n' + StrRnd + '\',\'../\',\'' + data.url + '\');return false;">删除</a> '; StrTemp += '<a href="javascript:void(0);" onclick="InValue(\'ImageUrl\',\'' + data.url + '\');return false;">设为封面</a>'; if (ObjEditor != '' && ObjEditor != null) { StrTemp += '<br /><a href="javascript:void(0);" id="J_insertToEditor">插入到编辑器</a>'; } StrTemp += '</p>'; StrTemp += '</li>'; $('#' + DispId).append(StrTemp); $('#J_insertToEditor').click(function() { InEditorVal(ObjEditor, MakePic, 1); }); }); EditorUpLoad.hideDialog(); } }); }); } 不行啊。总是插入的最后一张图片。而且只有点第1张和最后一张的图片下的插入到编辑器才有效。 总是插入的最后一张图片的地址 |
回复 |
作者: Roddy, 发布日期: 2012-10-09 13:25:47 |
function(i, data) { StrTemp = ''; StrRnd = ''; StrRnd = genRandNumber(10000, 999999); if (data.ThumbPic != '') { MakePic = data.ThumbPic; } else { MakePic = data.url; } StrTemp += '<li id="n' + StrRnd + '">'; StrTemp += '<img src="' + MakePic + '" />'; StrTemp += '<p>'; StrTemp += '<input name="UpImagesUrl" type="hidden" value="' + data.url + '" />'; StrTemp += '<input name="UpImagesTitle" type="text" style="width:110px;" /><br />'; StrTemp += '<a href="javascript:void(0);" onclick="RemoveImages(\'n' + StrRnd + '\',\'../\',\'' + data.url + '\');return false;">删除</a> '; StrTemp += '<a href="javascript:void(0);" onclick="InValue(\'ImageUrl\',\'' + data.url + '\');return false;">设为封面</a>'; if (ObjEditor != '' && ObjEditor != null) { StrTemp += '<br /><a href="javascript:void(0);" class="J_insertToEditor" data-pic="' + MakePic + '">插入到编辑器</a>'; } StrTemp += '</p>'; StrTemp += '</li>'; $('#' + DispId).append(StrTemp); }); $('.J_insertToEditor').click(function() { InEditorVal(ObjEditor, $(this).attr('data-pic'), 1); });回复小浪子: |
回复 |
作者: 小浪子, 发布日期: 2012-10-09 13:36:00 |
回复Roddy:点击:插入到编辑器还是木有反应。。
另外。我的上传。不能在火狐下上传啊。所以没法在火狐下调试。哎 |
回复 |
作者: 小浪子, 发布日期: 2012-10-09 13:39:21 |
回复小浪子:
$('.J_insertToEditor').click(function() { alert(ObjEditor); alert($(this).attr('data-pic')); InEditorVal(ObjEditor, $(this).attr('data-pic'), 1); });无法弹出信息。我用IE8的开发者工具查看。可以看到每个: 'data-pic'的值 |
回复 |
作者: Roddy, 发布日期: 2012-10-09 14:25:09 |
回复小浪子:A标签的ID改成class了吗?
|
回复 |
作者: 小浪子, 发布日期: 2012-10-09 14:46:33 |
回复Roddy:改了啊。我是直接复制你的那个段代码
function UpLoadMulti(Path, UpLoadId, DispId, ObjEditor, En, Es) { var UpLoadJsonUrl, StrTemp, StrRnd; UpLoadJsonUrl = Path + 'Inc/UpLoad.Asp?Action=SaveLoadMain&smode=1&sdir=' + UpLoadId; var EditorUpLoad = KindEditor.editor({ allowFileManager: true, uploadJson: UpLoadJsonUrl }); EditorUpLoad.loadPlugin('multiimage', function() { EditorUpLoad.plugin.multiImageDialog({ clickFn: function(urlList) { var MakePic; KindEditor.each(urlList, function(i, data) { StrTemp = ''; StrRnd = ''; StrRnd = genRandNumber(10000, 999999); if (data.ThumbPic != '') { MakePic = data.ThumbPic; } else { MakePic = data.url; } StrTemp += '<li id="n' + StrRnd + '">'; StrTemp += '<img src="' + MakePic + '" />'; StrTemp += '<p>'; StrTemp += '<input name="UpImagesUrl" type="hidden" value="' + data.url + '" />'; StrTemp += '<input name="UpImagesTitle" type="text" style="width:110px;" /><br />'; StrTemp += '<a href="javascript:void(0);" onclick="RemoveImages(\'n' + StrRnd + '\',\'../\',\'' + data.url + '\');return false;">删除</a> '; StrTemp += '<a href="javascript:void(0);" onclick="InValue(\'ImageUrl\',\'' + data.url + '\');return false;">设为封面</a>'; if (ObjEditor != '' && ObjEditor != null) { StrTemp += '<br /><a href="javascript:void(0);" class="J_insertToEditor" data-pic="' + MakePic + '">插入到编辑器</a>'; } StrTemp += '</p>'; StrTemp += '</li>'; $('#' + DispId).append(StrTemp); }); EditorUpLoad.hideDialog(); } }); }); } $('.J_insertToEditor').click(function() { alert(ObjEditor); alert($(this).attr('data-pic')); InEditorVal(ObjEditor, $(this).attr('data-pic'), 1); }); |
回复 |
作者: 小浪子, 发布日期: 2012-10-09 16:24:20 |
还是木有解决啊。。
|
回复 |
作者: Roddy, 发布日期: 2012-10-09 21:56:22 |
回复小浪子:
$('.J_insertToEditor').click(function() {放在hideDialog上面啊,你放在函数外部当然不行了,那时候DOM都没生成。 |
回复 |
作者: 小浪子, 发布日期: 2012-10-10 10:23:52 |
回复Roddy:谢谢。可以了。
|
回复 |