JavaScript制作新浪网易的评论块

开发 前端
技术要点:1.因为 textarea里面不能放图片,所以和新浪的做法一样,选用iframe放内容,然后隐藏一个 textarea用于提交。2.jQqery tab 插件的使用。

新浪的评论块如下图:

 

网易的如下图:

 

我做的的如下(借用了园里的页面哈):

 

 

 

技术要点:

1。因为 textarea里面不能放图片,所以和新浪的做法一样,选用iframe放内容,然后隐藏一个 textarea用于提交。

2 。JQqery tab 插件的使用

先引用这三个:

  1. <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>  
  2. <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>  
  3. <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>  

然后:

  1. $(function() {  
  2.  
  3.         $("#tabs").tabs();  
  4.  
  5. });  

3。 让iframe可编辑

  1. window.frames["iframe1"].document.designMode='on';  

4。 打开简易窗体

  1. var newwindow = window.open("tab.htm",'_blank', toolbars=0,resizable=1);  

5。 iframe里执行父窗体的方法

  1. window.opener.XXX(xxx);   

6。demo 下载

[[79106]] 

其实也就三个页面,不愿下载的直接复制粘贴,拿去就能用。大家有什么好的想法或创意欢迎讨论。

#p#

  1. <html> 
  2. <head> 
  3.  
  4.     <title>插入表情</title> 
  5.   <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
  6.       <style> 
  7.             img  
  8.             {  
  9.                 cursor:pointer;  
  10.             }  
  11.         </style> 
  12.     <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/> 
  13.   <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script> 
  14.   <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script> 
  15.     
  16.  
  17.     <script type="text/javascript"> 
  18.     $(function() {  
  19.         $("#tabs").tabs();  
  20.     });  
  21.       
  22.     </script> 
  23.       
  24. </head> 
  25. <body style="font-size:62.5%;"> 
  26.     <script language="javascript">          
  27.         function SetEmotion(e)  
  28.         {  
  29.             window.opener.InsertEmotion(e.childNodes[0].src);  
  30.             window.close();  
  31.         }  
  32.     </script> 
  33.    
  34. <div class="demo"> 
  35.    
  36. <div id="tabs"> 
  37.     <ul> 
  38.         <li><a href="#tabs-1">种类一</a></li> 
  39.         <li><a href="#tabs-2">种类二</a></li> 
  40.         <li><a href="#tabs-3">种类三</a></li> 
  41.     </ul> 
  42.     <div id="tabs-1"> 
  43.             <table id="EmoticonsTable" border="0"> 
  44.     <tr> 
  45.         <td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/qface/055242240.gif'></div></td><td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/qface/055243142.gif'></div></td><td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/qface/055243188.gif'></div></td><td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/qface/055243218.gif'></div></td><td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/qface/055243325.gif'></div></td> 
  46.     </tr><tr> 
  47.         <td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/qface/05524341.gif'></div></td><td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/qface/055243485.gif'></div></td><td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/qface/055243506.gif'></div></td><td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/qface/055243512.gif'></div></td><td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/qface/055243523.gif'></div></td> 
  48.     </tr><tr> 
  49.         <td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/qface/055243621.gif'></div></td><td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/qface/055243623.gif'></div></td><td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/qface/055243687.gif'></div></td><td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/qface/055243719.gif'></div></td><td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/qface/055243801.gif'></div></td> 
  50.     </tr><tr> 
  51.         <td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/qface/055243803.gif'></div></td><td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/qface/055243873.gif'></div></td><td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/qface/055243929.gif'></div></td><td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/qface/055243970.gif'></div></td><td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/qface/055611161.gif'></div></td> 
  52.     </tr><tr> 
  53.         <td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/qface/055611250.gif'></div></td><td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/qface/055611455.gif'></div></td><td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/qface/055611605.gif'></div></td><td></td><td></td><td></td> 
  54.     </tr> 
  55. </table> 
  56.     </div> 
  57.     <div id="tabs-2"> 
  58.         <table id="Table1" border="0"> 
  59.     <tr> 
  60.         <td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/tusiji/202939796.gif'></div></td><td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/tusiji/203330130.gif'></div></td><td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/tusiji/203330198.gif'></div></td><td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/tusiji/203330297.gif'></div></td><td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/tusiji/203330321.gif'></div></td> 
  61.     </tr><tr> 
  62.         <td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/tusiji/203330353.gif'></div></td><td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/tusiji/203330548.gif'></div></td><td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/tusiji/20333056.gif'></div></td><td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/tusiji/20333060.gif'></div></td><td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/tusiji/203330638.gif'></div></td> 
  63.     </tr><tr> 
  64.         <td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/tusiji/203330658.gif'></div></td><td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/tusiji/203330716.gif'></div></td><td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/tusiji/20333072.gif'></div></td><td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/tusiji/203330832.gif'></div></td><td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/tusiji/203330839.gif'></div></td> 
  65.     </tr><tr> 
  66.         <td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/tusiji/203330868.gif'></div></td><td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/tusiji/203330906.gif'></div></td><td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/tusiji/203330913.gif'></div></td><td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/tusiji/20333097.gif'></div></td><td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/tusiji/203330988.gif'></div></td> 
  67.     </tr><tr> 
  68.         <td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/tusiji/203707182.gif'></div></td><td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/tusiji/203707340.gif'></div></td><td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/tusiji/203707891.gif'></div></td><td></td><td></td><td></td> 
  69.     </tr> 
  70. </table> 
  71.  
  72.     </div> 
  73.     <div id="tabs-3"> 
  74.     <table id="Table2" border="0"> 
  75.     <tr> 
  76.         <td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/yoyocici/223851812.gif'></div></td><td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/yoyocici/223852199.gif'></div></td><td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/yoyocici/223852350.gif'></div></td><td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/yoyocici/223853735.gif'></div></td><td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/yoyocici/223853762.gif'></div></td> 
  77.     </tr><tr> 
  78.         <td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/yoyocici/223854210.gif'></div></td><td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/yoyocici/224023586.gif'></div></td><td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/yoyocici/224023962.gif'></div></td><td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/yoyocici/224024437.gif'></div></td><td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/yoyocici/224024847.gif'></div></td> 
  79.     </tr><tr> 
  80.         <td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/yoyocici/224025289.gif'></div></td><td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/yoyocici/224025633.gif'></div></td><td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/yoyocici/224025817.gif'></div></td><td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/yoyocici/224026138.gif'></div></td><td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/yoyocici/224026855.gif'></div></td> 
  81.     </tr><tr> 
  82.         <td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/yoyocici/224027301.gif'></div></td><td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/yoyocici/22402752.gif'></div></td><td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/yoyocici/224027861.gif'></div></td><td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/yoyocici/224027891.gif'></div></td><td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/yoyocici/224028242.gif'></div></td> 
  83.     </tr><tr> 
  84.         <td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/yoyocici/224029496.gif'></div></td><td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/yoyocici/224030538.gif'></div></td><td><div onclick="SetEmotion(this)"><img src='http://space.cnblogs.com/Emoticons/yoyocici/cool.gif'></div></td><td></td><td></td><td></td> 
  85.     </tr> 
  86. </table> 
  87.  
  88.     </div> 
  89. </div> 
  90. </div> 
  91. </body> 
  92. </html> 

#p#

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  2. <html xmlns="http://www.w3.org/1999/xhtml" > 
  3. <head> 
  4.     <title>Untitled Page</title> 
  5.     <script type="text/javascript" language="javascript"> 
  6.      
  7. function xx()  
  8. {  
  9.  window.frames["iframe1"].document.designMode='on';  
  10. }  
  11.  function  xxx()  
  12.  {  
  13.     window.frames["iframe1"].document.getElementById("xxx").innerHTML+='<img title="顶" alt="顶" src="http://www.sinaimg.cn/uc/myshow/blog/misc/gif/E___0104ZHWSSIGT.gif" _moz_dirty="">';  
  14.   }  
  15.     
  16. function openTab()  
  17. {  
  18.   var newwindow = window.open("tab.htm",'_blank', toolbars=0,resizable=1);  
  19.   newwindow.focus();  
  20. }  
  21. function   InsertEmotion(content)  
  22. {  
  23. document.getElementById("TextArea1").value+=content;  
  24.  window.frames["iframe1"].document.getElementById("xxx").innerHTML+='<img title="顶" alt="顶" src="'+content+'" _moz_dirty="">';  
  25. }  
  26.     </script> 
  27. </head> 
  28. <body onload="xx()"> 
  29. <iframe frameborder="0" src="HTMLPage1.htm" style="border: 1px solid rgb(199, 199, 199); height: 158px; width: 448px; background-color: white;" id="iframe1"></iframe> 
  30.  
  31. <div> 
  32.     <textarea id="TextArea1" style="height:150px;display:none;" cols="20" rows="2"></textarea> 
  33.     <input id="Button2"  type="button" value="提交" /> 
  34. <!--    <input id="Button1" type="button" value="button" onclick="return xxx()" />--> 
  35.     <input id="Button3" type="button" value="选择表情" onclick="openTab()" /> 
  36.     </div> 
  37. </body> 
  38. <!--<img src="http://www.rao123.com.cn/uploadfile/200912/20100113132913201.gif" alt="" />--> 
  39. </html> 
  1. <html> 
  2.     <head> 
  3.         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  4.         <style> 
  5.             p {   
  6.                 * margin:0.2em  auto;  
  7.             }  
  8.             body {  
  9.                 margin: 0;  
  10.                 scrollbar-face-color: #ffffff;  
  11.                 scrollbar-highlight-color: #ffffff;  
  12.                 scrollbar-shadow-color: #c0c1bb;  
  13.                 scrollbar-3dlight-color: #c0c1bb;  
  14.                 scrollbar-arrow-color: #c9cbb6;  
  15.                 scrollbar-track-color: #f4f5f0;  
  16.                 scrollbar-darkshadow-color: #ffffff;  
  17.                 scrollbar-base-color: #ffffff;  
  18.                 padding: 17px;  
  19.                 word-wrap: break-word;  
  20.                 overflow: scroll;  
  21.                 overflow-x: auto;  
  22.                 height: 90%;  
  23.                 font-size: 12px;  
  24.                 background-color:white;  
  25.             }  
  26.               
  27.             body, td, textarea, input, br, div, span {  
  28.                 font-family: '宋体', Verdana, Arial, Helvetica, sans-serif;  
  29.                 line-height: 1.5;  
  30.             }  
  31.               
  32.             img {  
  33.                 border: 0;  
  34.             }  
  35.               
  36.             html {  
  37.                 height: 100%;  
  38.                 cursor: text;  
  39.             }  
  40.               
  41.             pre {  
  42.                 white-space: normal;  
  43.             }  
  44.               
  45.             form {  
  46.                 margin: 0;  
  47.             }  
  48.         </style> 
  49.           
  50.  
  51.     </head> 
  52.     <body  style="background-color:white;"> 
  53.     
  54.     <div id="xxx"></div> 
  55.     <span id="content" style="display:none"></span> 
  56.     </body> 
  57. </html> 

原文链接:http://www.cnblogs.com/iamzhanglei/archive/2010/06/30/1768601.html

【编辑推荐】

  1. JavaScript 钩子机制
  2. 大部分人没用过的JS页面模板化
  3. 网易邮箱前端JavaScript编码规范
  4. JavaScript提升网页加载速度
  5. 看JavaScript如何实现页面自适
责任编辑:张伟 来源: 当耐特砖家的博客
相关推荐

2009-06-17 08:22:32

新浪网段冬离职

2011-05-11 13:13:27

2010-12-02 13:06:22

张蕾IT博客大赛IT博客

2012-05-25 13:54:18

JavaScript

2015-07-06 11:39:00

2012-01-05 14:32:39

2013-11-29 12:34:50

敏捷运维新浪微博许杨毅

2011-06-27 14:12:30

JavaScript

2012-08-08 09:43:58

移动端数据分享

2011-11-16 13:22:38

Jscex

2009-06-17 10:07:01

WAPI国产标准无线局域网

2014-12-23 17:39:26

野糖网

2013-09-18 11:31:56

新浪

2021-04-20 07:39:29

JavaScript 前端数组拆分

2019-10-18 15:36:24

网易歌单热评

2015-01-26 10:18:01

陈彤小米

2019-11-27 08:52:13

网易裁员微博

2015-11-05 11:29:05

2010-07-28 09:51:18

新浪微博开放平台

2009-06-15 09:09:01

Opera浏览器市场份额
点赞
收藏

51CTO技术栈公众号