首页 新闻 会员 周边

这种功能怎么实现?类似QQ表情!在线等!

0
悬赏园豆:20 [已解决问题] 解决于 2010-08-23 12:54

我现在又这么个需求,格式跟上面差不多,但是我的图片时从数据库中读取的,当我点击表情按钮时,加载上面的页面,当我点击表情列表中的图片时我怎么能让图片的路径放到下边的textarea中呢?

高手指点下巴。着急啊!!!在线等

问题补充: 上面的表格是通过后台StringBuilder追加出来的,要求在点击上面的图片时,能把此图片的路径放到下面的textarea中
JasonNET的主页 JasonNET | 初学一级 | 园豆:168
提问于:2010-08-19 13:56
< >
分享
最佳答案
0

直接用div,设置 contenteditable=true就可以 给div innerHTML 添加你从数据库读出来的表情路径了。

这个功能我做过

收获园豆:20
码尔代夫iimax | 老鸟四级 |园豆:3138 | 2010-08-19 17:57
我对前台不是很熟悉,能附上点源码吗?我收藏下,谢谢
JasonNET | 园豆:168 (初学一级) | 2010-08-19 21:20
<div><img src="1.png" onclick="insertPic(this);" /></div> <div id="editor" style="border:solid 1px black;width:200px;height:200px;" contentEditable="true">aaaaa</div> <script type="text/javascript"> function insertPic(o){ document.getElementById("editor").innerHTML += o.outerHTML; } </script> 我测试过了 没问题
码尔代夫iimax | 园豆:3138 (老鸟四级) | 2010-08-20 11:00
其他回答(4)
0

asp.net ?

Launcher | 园豆:45045 (高人七级) | 2010-08-19 13:59
恩 C# B/S
支持(0) 反对(0) JasonNET | 园豆:168 (初学一级) | 2010-08-19 14:00
@JasonNET:你看这篇回答: http://space.cnblogs.com/q/16802/
支持(0) 反对(0) Launcher | 园豆:45045 (高人七级) | 2010-08-19 14:01
不行,因为他的图片是固定的,我的图片是从库里取出来,动态绑定成表格的
支持(0) 反对(0) JasonNET | 园豆:168 (初学一级) | 2010-08-19 14:06
0

在初始化上面的表情列表时,为每一个img加载一个onclick事件。点击触发js为下面的文本框赋值。类似于input.value+=img路径。

下方的输入区域最好是不要用textarea,用div+css来代替。

邢少 | 园豆:10926 (专家六级) | 2010-08-19 14:03
我后台的代码是这么写的 sbuilder.Append("<td ><img alt=\"\" src=\"" + dt.Rows[i]["image_server_path"].ToString() + "\" onclick=\"selface(this)\" /></td>\n");
支持(0) 反对(0) JasonNET | 园豆:168 (初学一级) | 2010-08-19 14:12
嗯,你这个是表情列表上的html时候吧。 在页面的selface方法中添加 插入下面div文本区域的代码 $('#myMsg').append('<img src=''></img>')
支持(0) 反对(0) 邢少 | 园豆:10926 (专家六级) | 2010-08-19 17:44
0

function getImgUrl(obj)
{
var txt=document.getElementById("textarea1");
txt.value=obj.src;
}

为每个 img 都加上 事件 onclick=" getImgUrl(this)";

HUHU慈悲 | 园豆:9973 (大侠五级) | 2010-08-19 14:04
我后台的代码是这么写的:sbuilder.Append("<td ><img alt=\"\" src=\"" + dt.Rows[i]["image_server_path"].ToString() + "\" onclick=\"selface(this)\" /></td>\n"); 鼠标放到图片上没有反应,并没有变成小手的样子
支持(0) 反对(0) JasonNET | 园豆:168 (初学一级) | 2010-08-19 14:14
0

你可以参考博客园这里的编辑器功能:http://space.cnblogs.com/forum/ideas/newpost

<td><div onclick="SetEmotion('<img src=\'/Emoticons/yoyocici/223851812.gif\'/>')"><img src='Emoticons/yoyocici/223851812.gif'></div></td>
	<script language="javascript">		
function SetEmotion(face)
{
window.opener.InsertEmotion(face);
window.close();
}
</script>
Astar | 园豆:40805 (高人七级) | 2010-08-19 14:14
就是这种效果,应该怎么做,用你上面的js就行?
支持(0) 反对(0) JasonNET | 园豆:168 (初学一级) | 2010-08-19 14:16
@JasonNET:不是,如果你使用了tinyMCE编辑器,可以这样插入,首页面还有InsertEmotion个函数,如果你真是想吧表情的路径写到txtarea中,可以在每个表情上增加onclick函数,代码就是把表情路径值传进去,加到txtarea中。document.getElementById("textarea1").value+=传过来的路径值。
支持(0) 反对(0) Astar | 园豆:40805 (高人七级) | 2010-08-19 14:22
但是textarea所在的页面相当于父页面,我要的话怎么取到父页面的textarea的id呢
支持(0) 反对(0) JasonNET | 园豆:168 (初学一级) | 2010-08-19 14:44
@JasonNET:window.opener.InsertEmotion这个方法是调用父页面的方法,获取ID函数逻辑可以写到父页面的函数里。
支持(0) 反对(0) Astar | 园豆:40805 (高人七级) | 2010-08-19 14:45
InsertEmotion的方法是这个tinyMCE编辑器特有的方法吗?
支持(0) 反对(0) JasonNET | 园豆:168 (初学一级) | 2010-08-19 15:24
@JasonNET:如果只是向你的textarea中插入,你可以自己写一个呀,dom获取再赋值。
支持(0) 反对(0) Astar | 园豆:40805 (高人七级) | 2010-08-19 15:27
我如果不用这个编辑器的话,要怎么获取呢
支持(0) 反对(0) JasonNET | 园豆:168 (初学一级) | 2010-08-19 15:27
@JasonNET:document.getElementById("textarea1").value
支持(0) 反对(0) Astar | 园豆:40805 (高人七级) | 2010-08-19 15:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册