TinyMce介绍、环境配置与使用心得

TinyMCE 是一个基于浏览器的所见即所得编辑器,它使用户可以方便的编辑HTML内容。它非常灵活并且是为系统集成而设计的,比如在Intranets、CMS、LMS等系统中应用。

 

  特点

  • 易于集成,只需要简短几行代码。
  • 支持主题和模板。
  • 易于使用自定义代码扩展(插件和回调)
  • 可定制HTML输出。屏蔽元素和强制属性。
  • 国际语言支持(通过语言包)。
  • 支持多种浏览器, 目前有 Mozilla (PC/Mac/Linux), MSIE (PC) 和 FireFox (PC/Mac/Linux)。

  下面是使用/集成TinyMCE的内容:(您也可以查看TinyMCE中文手册了解一下内容

  初始化

  在初始化TinyMCE的时候,需要把以下代码加入到页面的HEAD标签中。按以下例子中的设置,所有的TEXTAREA文本域在页面加载时将被转换成编辑器。另外还有其他模块,我们将在后面详细讲述。

 




 

 

初始化
注意以上红色部分是tiny_mce.js脚本文件的位置,该文件中包含了编辑器所需要的全部代码,主题及语言包将在初始化时被加载。蓝色部分是初始化调用,它生成TinyMCE的全局实例,其中的设置及名称-值属性将在以后描述。

设置

名称-值属性方式传递给tinyMCE的init方法的设置控制着程序的全局行为。所有的键及可能的键值如下表所示。注意,用[]括起来的名称是可选的,不是必须的设置。

 

常规设置
mode Mode可以是以下几个值之一:

textareas - 页面加载时把所有TEXTAREA组件转换成编辑器.
specific_textareas - 将所有"mce_editable"属性值为true的TEXTAREA转换成编辑器.
exact - 只转换在"elements"设置中指定的确切组件.
[theme] 指定要使用的主题名称,主题将被放在TinyMCE的themes目录下,默认为default。TinyMCE自带三个内置的主题,它们是simple,default和advanced。
如果你想创建自己的主题,请仔细阅读文档的 主题 部分。
[plugins] 此选项是一系列以逗号分隔的主题插件列表(例如,可以只用来扩展图像对话框)。这些插件覆盖了主题模板中定义的功能。插件逻辑应该包含在一个叫"editor_plugin.js"的文件中,它是插件目录中唯一被包含进来的文件。
例如:"my_image_dialog,my_link_dialog".
如果你想创建自己的插件,请仔细阅读文档的 主题 部分。
[language] TinyMCE中使用的语言包,这应该是像se,uk,us等诸如此类的FN代码,它被用来从"langs"目录中获取语言包,该设置的默认值为"uk".
中文用户建议您使用"zh-CN"
[elements] 以逗号分隔的用来转换成编辑器的组件列表,该选项仅在"mode"选项被设置成"exact"时使用。该列表中的元素可以是任何有id或name属性的HTML组件。
[ask] 当"mode"被设置成"textareas"或"specific_textareas"的时候,该选项被应用,询问用户输入框是否将被转换成编辑器。
如果你想使用这个选项,将它设置为true.
[textarea_trigger] textarea(文本域)触发器的属性,默认值为"mce_editable"。
该选项仅在"mode"被设置为"specific_textareas"时使用。
[valid_elements] 以逗号分隔开的组件转换部分的列表。

例如: a[href|target=_blank],strong/b,div[align],br.

以上例子告诉TinyMCE移除所有除了"a, strong, div"和"br"的组件,将元素b转换成strong,默认target设为"_blank"并保持href、target、align属性。在匹配组件及属性的名称时可以使用像*,+,?这样的通配符。

字符:
, 各组件定义之间的分隔符。
/ 两个同义组件之间的分隔符。第一个组件是会被用来输出的那个(即第二个组件被第一个替换)。
| 各属性定义之间的分隔符。
[ 定义某组件的属性列表的开始符号。
] 定义某组件的属性列表的结束符号。
= 将属性的默认值设为特定值。例如:"target=_blank"
: 将属性的值强行设为特定值。例如:"border:0"
< 校验某个属性的值。例如:"target<_blank?_self"
? 属性校验值之间的分隔符,见上。

特殊变量:
{$uid} - 产生一个唯一ID号。 例如:"p[id:{$uid}]".

此选项的默认值是以下模式:
"a[href|target],strong/b[class],em/i[class],strike[class],u[class],p[class|align],ol,ul,li,br,
img[class|src|border=0|alt|hspace|vspace|width|height|align],sub,sup,blockquote[dir|style],
table[border=0|cellspacing|cellpadding|width|height|class|align],tr[rowspan],
td[colspan|rowspan|width|height],div[class|align],span[class|align],pre[class|align],
address[class|align],h1[class|align],h2[class|align],h3[class|align],
h4[class|align],h5[class|align],h6[class|align],hr".

要包含所有组件及属性,请使用 *[*] ,这在使用invalid_elements选项时特别有用。
[extended_valid_elements] 向"valid_elements"列表末尾添加可用组件。此选项在你仅仅想往默认列表中增添部分组件时相当有用。
格式与"valid_elements"一致。
[invalid_elements] 输出时需要排除在外的组件名称列表,以逗号分隔开。
[trim_span_elements] True/False选项。如果设置为true,不需要的组件将被移除。默认值即为true。
[verify_css_classes] True/False选项。如果设置为true,将会校验CSS的class属性。默认值即为true。
[verify_html] True/False选项。代表着HTML内容是否需要校验。默认值为true。
[urlconvertor_callback] 当清理进程处理URL的时候调用的函数名。此函数必须遵从以下的格式:func(url, node, on_save) ,返回转换后的URL。此设置专为集成目的而设。参数url代表要转换的地址,node代表包含URL的那个节点,on_save是一个布尔值(在用户提交表单时为真)。
[preformatted] True/False选项。如果设置为true,编辑器将把制表符(TAB)转换成缩进,除此外保持其他whitespace(空白字符、换行等)字符,就如同HTML标签中的PRE的效果。默认值为false。
[insertlink_callback] 当执行"insertlink"命令时调用的函数名。此函数获取选定链接的地址和目标,返回一个以"href", "target"和 "title"为collection名称的数组。当使用新窗口时,为了兼容Mozilla,会在window.opener(弹出窗口的母窗口,译者注)上调用tinyMCE.insertLink。
[insertimage_callback] 当执行"insertimage"命令时调用的函数名。此函数获取选定图像的url并返回一个以src和alt为collection名称的数组。当使用新窗口时,为了兼容Mozilla,会在window.opener上调用tinyMCE.insertImage。
函数格式:insertimage(src, alt, border, hspace, vspace, width, height, align, title, onmouseover, onmouseout, action).
[setupcontent_callback] 当编辑器初始化时调用的函数名。函数格式:setupContentCallback(editor_id, node),其中editor_id是编辑器的id,node是编辑器所在的body组件节点。
[save_callback] 当执行triggerSave(触发保存)命令被调用时调用的函数名。函数格式:save(id, content, node),如果有特定返回值,其值将会被加到HTML表单组件上。所以可以通过此函数来自定义用户转换逻辑。
[docs_language] TinyMCE文档中使用的语言,这应该是像se,uk,us等诸如此类的FN代码,它被用来从"/docs/"目录中获取文档。 该选项的默认值跟language选项一致。
[width] 编辑器的宽度,它默认的宽度是原先被替换的组件宽度。
[height] 编辑器的高度,它默认的高度是原先被替换的组件高度。
[content_css] 编辑窗口中要使用的CSS文件,其路径应该跟页面相关。
[popups_css] 像插入链接和图片时的弹出窗口中使用的CSS文件,其路径应该跟页面相关。
[editor_css] 编辑器使用的CSS文件,其路径应该跟页面相关。
[encoding] 编辑器的输出编码,此选项目前只能为"html"或者空。如果设置为"html",编辑器的输出将经过HTML编码处理。
例如:<将会变成<,依此类推。默认值是空。
[debug] True/False选项。如果设置成true,像css文件路径等调试信息将会被显示。
[visual] True/False选项。如果设置成true,当边框设置成0的时候,为达到更好的视觉效果在编辑器中表格会有虚线出现。
默认值为true。
[visual_table_style] 用户可自定义表格的样式,默认值为:"border: 1px dashed #BBBBBB"。
[add_form_submit_trigger] True/False选项。如果设置成true,将强制进行所有表单的"onsubmit"事件处理并引发保存。此选项默认值为true。
[add_unload_trigger] True/False选项。如果设置成true,在"onunload"事件发生时,当前窗口会引发一个triggerSave调用。此triggerSave调用不会做任何清理工作,因为它是用来处理 前进/后退 按钮的。此选项默认值为true。
[force_br_newlines] True/False选项。此选项强制编辑器将段落符号(P)替换成换行符(BR)。此选项默认值为false。(实验阶段)
[force_p_newlines] True/False选项。如果打开此选项,在按下回车键(Enter)时Mozilla/Firefox浏览器会生成段落符号(P),在按下Shift+Enter时会生成换行符(BR)。此选项默认为true。
[relative_urls] True/False选项。如果设置成true,绝对路径将被转换成相对路径。默认值为true。
[remove_script_host] True/False选项。在设置成true的情况下,如果URL中的主机名、端口号跟编辑器当前所在一致,它们会被移除。
例如:编辑器所在站点为 http://www.somesite.com ,那么以下链接 http://www.somesite.com/somedir/somepage.html 将会被转换成 /somedir/somepage.html 。
如果relative_urls被设置成false,此选项默认为true。
[focus_alert] True/False选项。如果设置成true,编辑器在失去焦点的时候就会出现一个烦人的警告框。默认值为true。
[document_base_url] 在将绝对路径转换成相对路径的时候会用到此文档的URL。这个选项指定了编辑器当前的默认文档。
注意如果此选项指定到一个域名,请添加协议前缀,并以斜杠结尾。例如:http://www.somehost.com/mydir/
[custom_undo_redo] True/False选项。此选项可以使 撤消/重做 功能更加完善。默认值为true。
[custom_undo_redo_levels] 自定义最多可撤消操作的次数,默认是无限制。
[custom_undo_redo_keyboard_shortcuts] 如果使用,编辑器可以使用Ctrl+Z和Ctrl+Y快捷键来实现撤消和重做。默认允许。
[fix_content_duplication] True/False选项。此选项修正了MSIE中一个内容重复的bug。默认启用,但是为了兼容性也可以禁用(false)。
[directionality] 此选项可以设置像阿拉伯语等语言的文字方向。可能的值为:ltr, rtl。默认值: ltr(从左到右)。
[auto_cleanup_word] 如果启用,从MS office/Word粘贴的HTML将会自动被清理。此选项默认值为false。
注意:此操作当前仅支持MSIE。
[cleanup_on_startup] 如果启用,在编辑器初始化时文本域及组件将会被清理。默认值为false。
[inline_styles] 如果启用,像width,height,vspace,hspace和align等属性将会被风格属性替代。默认值为false。
在使用此选项时记得要把风格属性应用在正确的组件上。
[convert_newlines_to_brs] 如果启用,所有的/n(新行)将会在编辑器启动时被转换成
组件。此选项默认值为false。
[auto_reset_designmode] 因为在调用style.display的none/block方法来显示/隐藏某个TinyMCE编辑器的时候有bug,设计模式需要被重置。此选项一旦启用,当编辑器聚焦时,将自动重置。默认值为false。
[entities] 一张以字符代码来查找名称的表,该表中元素是以逗号分隔开的实体列表。该列表以奇数项、偶数项区分,其中奇数项是被用来转换的字符代码,偶数项是代表那个字符代码的实体名称。例如:"8205,zwj,8206,lrm,8207,rlm,173,shy"。
[cleanup_callback] 自定义清理函数。此选项能让用户在默认的清理基础上有所扩展。此函数调用跟默认的调用是分开的,它并不替换默认的清理函数,而仅仅是扩展。点击 插件清理 查看更多细节。
主题的高级特定设置
[theme_advanced_toolbar_location] 此选项用来改变工具栏的默认位置。可能的值为:"top"和"bottom"。默认值是"bottom"。
[theme_advanced_toolbar_align] 此选项用来设置工具栏的对齐方式是left, center还是right。默认值是center。
[theme_advanced_styles] 此选项可以用来增加风格下拉框中的CSS类和名称。格式如下:"=<class>;.."。<br>如果没有指定此选项,主内容部分的CSS类将会被自动导入。<br>例如:"Header 1=header1;Header 2=header2;Header 3=header3"</td> </tr> <tr> <td><strong>[theme_advanced_buttons1]</strong></td> <td>工具栏上第一行要包含的按钮列表,以逗号分隔开。例如:"bold,italic,underline"。<br><br>允许的按钮名称如下:<br>bold, italic, underline, strikethrough, justifyleft, justifycenter, justifyright, justifyfull, styleselect, bullist, numlist, outdent, indent, undo,redo, link, unlink, image, cleanup, help, code, table, row_before, row_after, delete_row, separator, rowseparator, col_before, col_after, delete_col, hr, removeformat, sub, sup, formatselect, fontselect, fontsizeselect, forecolor,charmap,visualaid,spacer,cut,copy,paste</td> </tr> <tr> <td><strong>[theme_advanced_buttons2]</strong></td> <td>同上,差别在于指定的是工具栏第二行。</td> </tr> <tr> <td><strong>[theme_advanced_buttons3]</strong></td> <td>同上,差别在于指定的是工具栏第三行。</td> </tr> <tr> <td><strong>[theme_advanced_buttons<N>_add]</strong></td> <td>向工具栏上特定的第N行中增加额外的控制/按钮。例如:theme_advaned_buttons3_add : "iespell".</td> </tr> <tr> <td><strong>[theme_advanced_buttons<N>_add_before]</strong></td> <td>向工具栏上特定的第N行的默认按钮前面增加额外的控制/按钮。例如:theme_advaned_buttons3_add_before : "iespell"。</td> </tr> <tr> <td><strong>[theme_advanced_disable]</strong></td> <td>要禁用的按钮/组件的列表,以逗号分隔。例如:"formatselect".</td> </tr> <tr> <td><strong>[theme_advanced_source_editor_width]</strong></td> <td>源文件编辑器窗口的宽度。</td> </tr> <tr> <td><strong>[theme_advanced_source_editor_height]</strong></td> <td>源文件编辑器窗口的高度。</td> </tr> <tr> <td><strong>[theme_advanced_path_location]</strong></td> <td>组件路径列表的位置,可能的值为:"top"或"bottom"。默认值为:"none" </td> </tr> <tr> <td><strong>[theme_advanced_blockformats]</strong></td> <td>formatselect列表要屏蔽的格式列表,以逗号分隔开。默认值:p,address,pre,h1,h2,h3,h4,h5,h6。</td> </tr> </tbody> </table> <p> </p> <p> </p> <p> </p> <div class="left" style="text-align:left;"> <strong>以下是一个较为复杂的初始化例子:</strong> </div> <div class="left" style="text-align:left;"> <table border="0" align="center"> <tbody> <tr> <td> <p><!-- tinyMCE --></p> <p><script language="javascript" type="text/javascript" src="<span style="color:#990000;">jscripts/tiny_mce/tiny_mce.js</span>"></script><br><script language="javascript" type="text/javascript"><br>   <span style="color:#000099;">tinyMCE.init({<br>       mode : "exact",<br>       theme : "mytheme",<br>       language : "se",<br>       elements : "elm1,elm2"<br>   });</span><br></script><br><!-- /tinyMCE --></p> </td> </tr> </tbody> </table> <p> </p> <p> </p> <p> </p> <div class="left"> <span class="subtitle"><strong>函数</strong></span> <strong> (供高级使用)</strong> <br>TinyMCE有一个全局实例,它能提供一些可从页面调用的公用函数。 </div> <p class="left"> </p> <div class="left"> <hr> </div> <p class="left"><strong>语法:</strong><span> tinyMCE.</span><strong><span style="color:#0000ff;"><span>triggerSave</span></span></strong><span>([skip_cleanup]);</span><br><br><strong>描述:</strong>进行清除操作,并将编辑器内容移回到表单域中。tinyMCE通过向表单提交方法中增加触发器来自动调用此函数。<br><br><strong>参数:</strong><br>[skip_cleanup] - 禁用保存触发器的清除功能,默认为false。(可选)<br><br><strong>返回:</strong> 无</p> <div class="left"> <hr> </div> <p class="left"><strong>语法:</strong> <span>tinyMCE.</span><span style="color:#0000ff;"><strong><span>updateContent</span></strong></span><span>(form_element_name);</span><br><br><strong>描述:</strong>将表单组件的内容转移到编辑器中,此操作的功能跟triggerSave()正好相反。当你想动态改变编辑器内容时可以使用此方法。<br><br><strong>参数:<br></strong>form_element_name - 要获取内容的组件所在表单的名称。<br><br><strong>返回:</strong> 无 </p> <div class="left"> <hr> </div> <p class="left"><strong>语法:</strong> <span>tinyMCE.</span><span style="color:#0000ff;"><strong><span>execInstanceCommand</span></strong></span><span>(editor_id, command, [user_interface], [value]);</span><br><br><strong>描述:</strong>此方法通过editor_id参数找到某个编辑器实例,在此编辑器上执行一个命令。<br><br><strong>参数:</strong><br>editor_id - 编辑器实例的ID或者被替换后的组件id/名称。<br>command - 要执行的命令。查看execCommand函数以获取更多细节。<br>[user_interface] - 是否使用用户界面。<br>[value] - 执行命令时要传递的参数,例如:一个URL。</p> <p class="left"> </p> <p class="left"> </p> </div> <p class="left" style="text-align:left;"><strong>语法:</strong> <span>tinyMCE.</span><span style="color:#0000ff;"><strong><span>execCommand</span></strong></span><span>(command, [user_interface], [value]);</span><br><br><strong>描述:</strong>此方法在选定编辑器中通过名称执行特定命令。<br><br><strong>参数:<br></strong>command - 要执行的命令,例如:"Bold" or "Italic"。<span style="color:#000000;">你可以通过此连接来查看Mozilla Midas spec</span>。但是tinyMCE也有自身一些特殊的命令如下表所示:</p> <p class="left"> </p> <table border="0"> <tbody> <tr> <td width="150"><strong>mceLink</strong></td> <td>打开插入链接对话框并插入链接。</td> </tr> <tr> <td width="150"><strong>mceImage</strong></td> <td>打开插入图像对话框并插入图像。</td> </tr> <tr> <td><strong>mceCleanup</strong></td> <td>从HTML代码中移除不需要的组件和属性。</td> </tr> <tr> <td><strong>mceHelp</strong></td> <td>打开文档页面。</td> </tr> <tr> <td><strong>mceInsertTable</strong></td> <td>在鼠标位置插入表格,默认尺寸为:2×2。如果execCommand函数中有指定value参数,它的格式必须为name/value形式的数组,其中name有以下选项:cols, rows, border, cellspacing, cellpadding。border(边框)的默认大小为:0。</td> </tr> <tr> <td><strong>mceTableInsertRowBefore</strong></td> <td>在当前鼠标所在位置之前插入一行。</td> </tr> <tr> <td><strong>mceTableInsertRowAfter</strong></td> <td>在当前鼠标所在位置之后插入一行。</td> </tr> <tr> <td><strong>mceTableDeleteRow</strong></td> <td>将当前鼠标所在行删除。</td> </tr> <tr> <td><strong>mceTableInsertColBefore</strong></td> <td>在当前鼠标所在位置之前插入一列。</td> </tr> <tr> <td><strong>mceTableInsertColAfter</strong></td> <td>在当前鼠标所在位置之后插入一列。</td> </tr> <tr> <td><strong>mceTableDeleteCol</strong></td> <td>将当前鼠标所在列删除。</td> </tr> <tr> <td><strong>mceAddControl</strong></td> <td>向编辑器添加组件控制,此编辑器的id/name由value指定。</td> </tr> <tr> <td><strong>mceRemoveControl</strong></td> <td>通过editor_id名称来移除特定控制。value是要移除的editor_id(编辑器ID),编辑器ID格式如下:"mce_editor_<index>"。<br>也可以使用DOM组件的ID和表单名。</td> </tr> <tr> <td><strong>mceFocus</strong></td> <td>使以value的值为ID的编辑器获得焦点。编辑器ID格式如下:"mce_editor_<index>"。也可以使用DOM组件的ID和表单名。</td> </tr> <tr> <td><strong>mceSetCSSClass</strong></td> <td>设置CSS类属性,或者在选择框中创建新的span。value的值是要给选定组件指派的css类名或者要新创建的span组件名称。</td> </tr> <tr> <td><strong>mceInsertContent</strong></td> <td>在当前鼠标所在位置插入value的内容。</td> </tr> <tr> <td><strong>mceReplaceContent</strong></td> <td>将当前选定部分替换为value中的HTML代码。{$selection}变量由当前选定部分的文字内容替换。</td> </tr> <tr> <td><strong>mceSetAttribute</strong></td> <td> <p>为当前选定组件设置属性。此命令的value应该是name/value数组,其参数如下:<br><br><strong>name</strong> - 要设置的属性名。<br><strong>value</strong> - 要设置的属性值。<br><strong>[targets]</strong> - 要增加属性的目标组件,默认为:p,img,span,div,td,h1,h2,h3,h4,h5,h6,pre,address。<br><br>使用示例:<br>tinyMCE.execCommand('mceSetAttribute',false,{name:'align',value:'right'});</p> </td> </tr> <tr> <td><strong>mceToggleVisualAid</strong></td> <td> <p>是否开启视觉帮助模式</p> </td> </tr> <tr> <td><strong>mceAnchor</strong></td> <td> <p>插入名称锚点。value是锚点的名称。</p> </td> </tr> <tr> <td><strong>mceResetDesignMode</strong></td> <td> <p>重置所有编辑器实例的设计模式状态。在Firefox中,当编辑器被放在制表符中或者用style.display="none/block"来控制隐显的时候,此命令非常有用。在编辑器重新显示时调用此命令。</p> </td> </tr> <tr> <td><strong>mceSelectNode</strong></td> <td> <p>选定value指定的节点/组件。同时此命令会使编辑器滚动到此组件所在位置。</p> </td> </tr> <tr> <td><strong>mceSelectNodeDepth</strong></td> <td> <p>从当前节点以深度关系选择指定的节点/组件。所以0值会选定当前聚焦的节点。同时此命令会使编辑器滚动到此组件所在位置。</p> </td> </tr> </tbody> </table> <p> </p> <p class="left" style="text-align:left;"><br>user_interface - 申明某命令是否会显示用户界面。True/False选项。<br>value - 要传递给命令的值。例如,插入链接时,它就是链接的URL。<br><br><strong>返回:</strong> 无<br><br><strong>示例:</strong></p> <div class="left" style="text-align:left;"> <a href=" <span style="color:#990000;">javascript:tinymce.execCommand('Bold');</span>">[Do bold]</a> </div> <div class="left"> <p> </p> <p style="text-align:left;">---------------------------------------------------------------  </p> <p style="text-align:left;"><strong>语法:</strong><span> tinyMCE.</span><span style="color:#0000ff;"><strong><span>insertLink</span></strong></span><span>(href, target);</span><br><br><strong>描述:</strong>此方法在当前选定编辑器实例的鼠标位置插入一个链接,或者用新的数据来更新已有链接。当你创建自己的主题时,此方法应在插入链接的弹出窗口中的OK按钮按下时被调用。<br><br><strong>参数:<br></strong>href - 链接的地址/URL。<br>target - 链接的目标。<br><br><strong>返回:</strong> 无</p> <p style="text-align:left;"> </p> <p style="text-align:left;">-------------------------------------------------------------         </p> <p style="text-align:left;"><strong>语法:</strong><span> tinyMCE.</span><span style="color:#0000ff;"><strong><span>insertImage</span></strong></span><span>(src, alt, border, hspace, vspace, width, height, align, title, onmouseover, onmouseout);</span><br><br><strong>描述:</strong>此方法在当前选定编辑器实例的鼠标位置插入图像,或者用新的数据来更新已有图像。当你创建自己的主题时,此方法应在插入图像的弹出窗口中的OK按钮按下时被调用。<br><br><strong>参数:<br></strong>src - 图像地址。<br>alt - 图片的替代文字。<br>border - 图像边框。<br>hspace - 图像水平间距。<br>vspace - 图像垂直间距。<br>width - 图像宽。<br>height - 图像高。<br>align - 图像对齐方式。<br>title - 图像链接的标题。<br>onmouseover - 图像在鼠标放上去时的事件处理。<br>onmouseout - 图像在鼠标移开时的事件处理。<br><br><strong>返回:</strong> 无</p> <p style="text-align:left;"> </p> <p style="text-align:left;">-------------------------------------------------------------         </p> <p style="text-align:left;"><strong>语法:</strong> <span>tinyMCE.</span><span style="color:#0000ff;"><strong><span>triggerNodeChange</span></strong></span><span>();</span><br><br><strong>描述:</strong>当编辑器发生外部变化时此方法被调用。然后此方法回调主题的"handleNodeChangeCallback"方法。<br><br><strong>参数: </strong>None<br><br><strong>返回:</strong> 无</p> <p style="text-align:left;"> </p> <p style="text-align:left;">-------------------------------------------------------------         </p> <p style="text-align:left;"><strong><span style="color:#993300;">语法</span></strong><strong>:</strong><span> <strong><span style="font-size:medium;"><span style="color:#993300;">tinyMCE</span></span></strong>.</span><span style="color:#0000ff;"><strong><span><span style="font-size:large;">getContent</span></span></strong></span><span>();</span><br><br><strong>描述:</strong><span style="color:#0000ff;"><span style="color:#000000;">此方法</span><strong>返回当前选定编辑器中的HTML内容</strong></span>。如果没有任何选定编辑器,该方法返回null。<br><br><strong>参数: </strong>None<br><br><strong>返回:</strong>当前选定编辑器中的HTML内容或者null。 </p> </div> <p> </p> <p> </p> <p>-------------------------------------------------------------         </p> <p><strong><span style="color:#993300;">语法</span></strong><strong>:</strong><span> <strong><span style="color:#993300;"><span style="font-size:medium;">tinyMCE</span></span></strong>.</span><span style="color:#0000ff;"><strong><span><span style="font-size:large;">setContent</span></span></strong></span><span>(html);</span><br><br><strong>描述:</strong>此方法设定当前选定编辑器的HTML内容。<br><br><strong>参数:<br></strong>html - 要设定的HTML源代码。<br><br><strong>返回:</strong> None. </p> <p> </p> <p><strong>-------------------------------------------------------------         </strong></p> <p><strong>语法:</strong> <span>tinyMCE.</span><span style="color:#0000ff;"><strong><span>getEditorInstance</span></strong></span><span>(editor_id);</span><br><br><strong>描述:</strong>此方法通过editor_id返回某个编辑器实例。<br><br><strong>参数:<br></strong>editor_id - 要获取的编辑器实例。<br><br><strong>返回:</strong>编辑器实例(TinyMCEControl)。 </p> <p> </p> <p>-------------------------------------------------------------         </p> <p><strong>语法:</strong> <span>tinyMCE.</span><span style="color:#0000ff;"><strong><span>importThemeLanguagePack</span></strong></span><span>([theme]);</span><br><br><strong>描述:</strong>此方法导入主题中特定的语言包。自定义主题中可以调用此方法。<br><br><strong>参数:</strong><br>[theme] - 当前主题名称。此选项可选,默认为全局的"theme"设定。此参数在主题插件中非常有用。<br><br><strong>返回:</strong> None. </p> <hr> <p> </p> <p><strong>语法:</strong> <span>tinyMCE.</span><span style="color:#0000ff;"><strong><span>importPluginLanguagePack</span></strong></span><span>(plugin, valid_languages);</span><br><br><strong>描述:</strong>此方法导入插件中特定的语言包。自定义插件中可以调用此方法。<br><br><strong>参数:</strong><br>plugin - 当前插件的名称。<br>valid_languages - 以逗号分隔的所支持语言包列表。<br><br><strong>返回:</strong> None. </p> <hr> <p><strong>语法:</strong> <span>tinyMCE.</span><span style="color:#0000ff;"><strong><span>applyTemplate</span></strong></span><span>(html);</span><br><br><strong>描述:</strong>此方法替换主题中的设置及语言变量。<br><br><strong>参数:</strong> <br>html - 要替换主题变量的HTML代码。<br><br><strong>返回:</strong> 转换后的HTML代码。</p> <p> </p> <p>-------------------------------------------------------------         </p> <p><strong>语法:</strong><span> tinyMCE.</span><strong><span style="color:#0000ff;"><span>openWindow</span></span></strong><span>(template, [args]);</span><br><br><strong>描述:</strong>此方法通过从指定的template参数中获取width, height及html数据来打开新窗口。数组参数args中包含要替换的变量名。<br><br>还有一些自定义的窗口参数:<br>mce_replacevariables - 启用/禁用HTML文档中的语言/变量替换。默认启用。<br>mce_windowresize - 启用/禁用弹出窗口的自动resize特征,默认启用。<br><br><strong>参数:</strong> <br>template - Name/Value数组,以width, height, html和file为键。<br>[args] - 包含要替换变量名的Name/Value数组。模板文件中的键值变量被参数列表所替换。<br>例如:image.php?src={$src}被替换为:image.php?src=image.gif。<br><br><strong>返回:</strong> None. </p> <p> </p> <p>-------------------------------------------------------------         </p> <p><strong>语法:</strong><span> tinyMCE.</span><span style="color:#0000ff;"><strong><span>getWindowArg</span></strong></span><span>(name, [default_value]);</span><br><br><strong>描述:</strong>此方法根据name返回窗口参数,它可以用在主题中的弹出窗口中,以获取对话框中的参数。<br><br><strong>参数:</strong> <br>name - 要获取的窗口参数的名称。<br>[default_value] - 窗口参数丢失时返回的默认值。<br><br><strong>返回:</strong> 窗口参数的值。</p> <p> </p> <p>-------------------------------------------------------------         </p> <p><strong>语法</strong>: <span>tinyMCE.</span><span><span style="color:#0000ff;">setWindowArg</span></span><span>(name, value);</span></p> <p><br><strong>描述:</strong>此方法根据name设定窗口参数,例如它在某插件调用其他插件时非常有用。<br><br><strong>参数:</strong> <br>name - 要设置的窗口参数。<br>value - 窗口参数中要设置的值。<br><br><strong>返回:</strong> 窗口参数值。 </p> <p> </p> <p>-------------------------------------------------------------         </p> <p style="text-align:left;"><strong>语法:</strong> <span>tinyMCE.</span><span style="color:#0000ff;"><strong><span>getParam</span></strong></span><span>(name, [default_value], [strip_whitespace]);</span><br><br><strong>描述:</strong>此方法返回TinyMCE的配置参数。<br><br><strong>参数:</strong> <br>name - 要获取的窗口参数名。<br>[default_value] - 窗口参数丢失时返回的默认值。<br>[strip_whitespace] - 如果为真,所有返回值中的空白字符将会被除去。默认:false。<br><br><strong>返回:</strong>TinyMCE配置参数</p> </div> <p style="text-align:left;"> </p> <p style="text-align:left;"> </p> <p style="text-align:left;"> </p> <p style="text-align:left;">----------------------</p> <p style="text-align:left;"><strong><span style="font-size:small;">补充:</span></strong></p> <p style="text-align:left;"><span style="font-family:'宋体';">TinyMCE是一个轻量级的基于浏览器的所见即所得编辑器,由JavaScript写成。它对IE6+和Firefox1.5+都有着非常良好的支持。功能方面虽然不能称得上是最强,但绝对能够满足大部分网站的需求,并且功能配置灵活简单。另一特点是加载速度非常快。最重要的是,TinyMCE是一个根据LGPL license发布的自由软件,你可以把它用于商业应用。</span></p> <p style="text-align:left;"> </p> <p class="MsoNormal"><span style="font-family:'宋体';"><br></span></p> <p>  <a href="http://img.e-com-net.com/image/info8/344867f4e0414043b4b7961704582b94.png" target="_blank"><img src="http://img.e-com-net.com/image/info8/344867f4e0414043b4b7961704582b94.png" alt="TinyMce介绍、环境配置与使用心得_第1张图片" width="444" height="234" style="border:1px solid black;"></a></p> <p>  </p> <p> </p> <p>---------------------------------  </p> <p><strong>使用:</strong></p> <p><strong><br></strong></p> <p>  <strong>1、首先将TinyMCE解压缩,会建立如下的目录结构:</strong></p> <p><strong><br></strong></p> <p>  /tinymce/</p> <p> </p> <p>  /tinymce/docs/</p> <p>  /tinymce/docs/zh_cn/</p> <p> </p> <p>  /tinymce/examples/</p> <p>  /tinymce/examples/zh_cn/</p> <p> </p> <p>  <strong><span style="color:#ff0000;">/tinymce/jscripts/</span></strong></p> <p>  /tinymce/jscripts/tiny_mce/</p> <p>  /tinymce/jscripts/tiny_mce/langs/</p> <p>  /tinymce/jscripts/tiny_mce/plugins/</p> <p>  /tinymce/jscripts/tiny_mce/plugins/ </p> <p>  /tinymce/jscripts/tiny_mce/themes/</p> <p>  /tinymce/jscripts/tiny_mce/themes/advanced/</p> <p>  /tinymce/jscripts/tiny_mce/themes/default/</p> <p>  /tinymce/jscripts/tiny_mce/themes/simple/</p> <p> </p> <p>  其中docs/目录下是TinyMCE的说明文档,examples/目录下是4个实例页面,而jscripts/目录下则是真正的JS文件。<span><span style="color:#ff0000;">实际使用时候只需要将<strong>jscripts/</strong>目录上传到服务器上即可。</span></span></p> <p><span><span style="color:#ff0000;"><br></span></span></p> <p>  <strong>2、然后在需要使用TinyMCE的页面里加入如下的JS代码:</strong></p> <p> </p> <table border="0" align="center"> <tbody> <tr> <td><!-- tinyMCE --> <br><script language="javascript" type="text/javascript" <br>src="<strong><span style="color:#ff0000;">jscripts/tiny_mce/tiny_mce.js</span></strong>"></script> <br><script language="javascript" type="text/javascript"> <br>     tinyMCE.<strong><span style="color:#0000ff;">init</span></strong><strong>({ </strong><br>         mode <strong>:</strong> "textareas" <strong>,</strong> <br>         theme <strong>:</strong> "advanced" <strong>, </strong><br>         language <strong>: </strong>"zh_cn" <br>     <strong>});</strong> <br></script> <br><!-- /tinyMCE --></td> </tr> </tbody> </table> <p> </p> <p>  <span>这里假设页面与jscripts/处于同一目录下,否则请修改代码里的路径。</span></p> <p>  </p> <p>     现在页面里所有的textarea元素就会被渲染成TinyMCE实例。</p> <p> </p> <p> </p> <p> </p> <p>  <strong>3、初始化配置介绍:</strong></p> <p><strong><br></strong></p> <p> <strong> tinyMCE.<span style="color:#0000ff;"><span style="font-size:medium;">init</span></span>({</strong></p> <p>  mode : "exact",</p> <p>  elements : "example_textarea",</p> <p>  theme : "advanced",</p> <p>  language :"zh_cn",</p> <p>  plugins : "flash,emotions,paste",</p> <p>  theme_advanced_buttons1 : "bold,italic,underline,</p> <p>  strikethrough, separator, forecolor,backcolor,</p> <p>  fontselect,fontsizeselect",</p> <p>  theme_advanced_buttons2_add_before: "cut,copy,</p> <p>  pastetext,separator",</p> <p>  theme_advanced_buttons2 : "undo,redo,separator,hr,</p> <p>  link,unlink,image,flash,separator",</p> <p>  theme_advanced_buttons2_add :"code,emotions,charmap",</p> <p>  theme_advanced_buttons3 : "",</p> <p>  theme_advanced_toolbar_location : "bottom",</p> <p>  theme_advanced_toolbar_align : "center",</p> <p>  relative_urls : false,</p> <p>  remove_script_host : false</p> <p>  <strong>});</strong></p> <p>  </p> <p> </p> <p> </p> <p>  mode与elements是搭配使用的,用来指定渲染name在elements中的HTML元素为TinyMCE编辑器(可以是DIV或者Textarea),比如:</p> <p>  mode : "exact",elements : "example_textarea"</p> <p>  也可以单独用 mode : "textareas",这样页面中所有的Textarea元素都会被渲染。</p> <p> </p> <p>  theme 可以是advanced或者simple(受功能限制),也可以自定义主题。</p> <p>  language 常用选择可以是:en,zh_cn,zh_cn_utf8,zh_tw,zh_tw_utf8(和语言包名字对应)</p> <p> </p> <p>  plugins 用来指定加载相应的插件,以提供特别功能</p> <p> </p> <p>  theme_advanced_buttons 后面的数字用来指定工具栏的第几行,前3行可以不写,系统会自动用默认图标填在前3个工具栏,如果你不想显示前3行,可以像例子里面一样这样写:theme_advanced_buttons3 : "",_add_before后缀指在默认工具栏前面加图标,_add后缀指在默认工具栏后面加图标,具体每个按钮资料可以查看文档(/doc目录)。</p> <p>  theme_advanced_toolbar_location和theme_advanced_toolbar_align很简单,一看就明白。</p> <p> </p> <p> </p> <p>  relative_urls : false,remove_script_host : false一般也配对使用,因为TinyMce会自动把本地链接改成相对链接的形式,比如会把绝对路径http://www.jacklam.cn/2006/03/abc.html改成相对路径/2006/03/abc.html。加了上面的代码后就不会自动改写了。</p> <p> </p> <p> </p> <p> </p> </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1176835487432781824"></div> <script type="text/javascript" src="/views/front/js/chanyan.js"></script> <!-- 文章页-底部 动态广告位 --> <div class="youdao-fixed-ad" id="detail_ad_bottom"></div> </div> <div class="col-md-3"> <div class="row" id="ad"> <!-- 文章页-右侧1 动态广告位 --> <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_1"> </div> </div> <!-- 文章页-右侧2 动态广告位 --> <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_2"></div> </div> <!-- 文章页-右侧3 动态广告位 --> <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_3"></div> </div> </div> </div> </div> </div> </div> <div class="container"> <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(JavaScript)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1892415446636883968.htm" title="null和undefined的区别" target="_blank">null和undefined的区别</a> <span class="text-muted">编程星空</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>null和undefined是JavaScript中两个特殊的值,它们都表示“无”或“空”,但在语义和使用场景上有明显区别。以下是它们的详细对比:1.定义undefined表示变量已声明但未赋值,或函数没有返回值时的默认返回值。是JavaScript引擎默认赋予的初始值。类型为undefined。null表示一个空对象指针,通常用于显式表示“无”或“空”。是开发者主动赋值的值。类型为object(</div> </li> <li><a href="/article/1892413304811352064.htm" title="dreamweaver html语言,Dreamweaver网页设计与制作(HTML+CSS+JavaScript)" target="_blank">dreamweaver html语言,Dreamweaver网页设计与制作(HTML+CSS+JavaScript)</a> <span class="text-muted">weixin_39979245</span> <a class="tag" taget="_blank" href="/search/dreamweaver/1.htm">dreamweaver</a><a class="tag" taget="_blank" href="/search/html%E8%AF%AD%E8%A8%80/1.htm">html语言</a> <div>Dreamweaver网页设计与制作(HTML+CSS+JavaScript)编辑锁定讨论上传视频本词条缺少信息栏,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!《Dreamweaver网页设计与制作(HTML+CSS+JavaScript)》是2014年清华大学出版社出版的图书。Dreamweaver网页设计与制作(HTML+CSS+JavaScript)图书详细信息编辑ISBN:978</div> </li> <li><a href="/article/1892412800781840384.htm" title="html 5中css的含义,HTML 5+CSS+JavaScript网页设计与制作" target="_blank">html 5中css的含义,HTML 5+CSS+JavaScript网页设计与制作</a> <span class="text-muted">律保阁-Michael</span> <a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/5%E4%B8%ADcss%E7%9A%84%E5%90%AB%E4%B9%89/1.htm">5中css的含义</a> <div>HTML5+CSS+JavaScript网页设计与制作编辑锁定讨论上传视频《HTML5+CSS+JavaScript网页设计与制作》是2019年4月清华大学出版社出版的图书,作者是彭进香、张茂红、王玉娟、叶娟、孙秀娟、万幸、刘英。书名HTML5+CSS+JavaScript网页设计与制作作者彭进香张茂红王玉娟叶娟作者孙秀娟展开作者孙秀娟万幸刘英收起出版社清华大学出版社出版时间2019年4月定价48</div> </li> <li><a href="/article/1892412295414345728.htm" title="html+css+javascript实用详解,HTML+CSS+JavaScript 课程标准" target="_blank">html+css+javascript实用详解,HTML+CSS+JavaScript 课程标准</a> <span class="text-muted">vvv666s</span> <div>②学会运用HTML语言中的标记设置颜色、文本格式和列表;熟练掌握颜色值的配置和背景图案的设置方法,熟练掌握字符、链接颜色的设置方法;③掌握在网页中添加CSS、嵌入图像、声音、多媒体信息的方法;④熟练掌握表格的使用方法,学会利用表格设布局网页;掌握框架制作网页的方法,会使用框架设计网页;掌握制作表单的方法,会利用表单建立交互式页面;⑤掌握JavaScript语言的语法;⑥掌握在HTML语言代码中嵌入</div> </li> <li><a href="/article/1892410529520087040.htm" title="JavaScript的魔法世界:巧妙之处与实战技巧" target="_blank">JavaScript的魔法世界:巧妙之处与实战技巧</a> <span class="text-muted">skyksksksksks</span> <a class="tag" taget="_blank" href="/search/%E7%BB%BC%E5%90%88%E4%B8%AA%E4%BA%BA%E6%9D%82%E8%AE%B0/1.htm">综合个人杂记</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/html5/1.htm">html5</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>一、从浏览器玩具到全栈利器的蜕变之路JavaScript诞生于1995年,原本只是网景公司为浏览器设计的"小脚本"。谁能想到这个曾被戏称为"玩具语言"的家伙,如今已蜕变成支撑现代Web开发的擎天柱?就像一只破茧成蝶的幼虫,JavaScript经历了ECMAScript标准的持续进化,在Node.js的加持下突破了浏览器的桎梏,实现了从客户端到服务端的华丽转身。V8引擎的涡轮增压让它跑得比猎豹还快,</div> </li> <li><a href="/article/1892407376435277824.htm" title="前端开发入门指南:HTML、CSS和JavaScript基础知识" target="_blank">前端开发入门指南:HTML、CSS和JavaScript基础知识</a> <span class="text-muted">方向感超强的</span> <a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>引言:大家好,我是一名简单的前端开发爱好者,对于网页设计和用户体验的追求让我深深着迷。在本篇文章中,我将带领大家探索前端开发的基础知识,涵盖HTML、CSS和JavaScript。如果你对这个领域感兴趣,或者想要了解如何开始学习前端开发,那么这篇文章将为你提供一个良好的起点。1.前端开发概述在我们深入了解前端开发的细节之前,让我们先了解一下前端开发的定义和作用。简而言之,前端开发涉及构建用户直接与</div> </li> <li><a href="/article/1892400189780586496.htm" title="js如何直接下载文件流" target="_blank">js如何直接下载文件流</a> <span class="text-muted">涔溪</span> <a class="tag" taget="_blank" href="/search/js/1.htm">js</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>在JavaScript中直接处理文件下载,尤其是在处理文件流的情况下,通常涉及到使用fetchAPI或者XMLHttpRequest来获取文件流,并通过创建一个临时的标签(锚点元素)触发下载。以下是使用fetchAPI的一个示例:fetch('你的文件URL',{method:'GET',headers:{//如果需要的话,可以在这里添加请求头}}).then(response=>response</div> </li> <li><a href="/article/1892398803407925248.htm" title="部署前端项目2" target="_blank">部署前端项目2</a> <span class="text-muted">augenstern416</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>前端项目的部署是将开发完成的前端代码发布到服务器或云平台,使其能够通过互联网访问。以下是前端项目部署的常见步骤和工具:1.准备工作在部署之前,确保项目已经完成以下步骤:代码优化:压缩JavaScript、CSS和图片文件,减少文件体积。环境配置:区分开发环境和生产环境(如API地址、环境变量等)。测试:确保项目在本地测试通过,没有明显Bug。2.部署流程1.构建项目大多数前端项目(如React、V</div> </li> <li><a href="/article/1892398677004185600.htm" title="对象的操作" target="_blank">对象的操作</a> <span class="text-muted">augenstern416</span> <a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/ecmascript/1.htm">ecmascript</a> <div>在前端开发中,JavaScript提供了许多内置对象和方法,用于处理数据、操作DOM、处理事件等。以下是一些常用对象及其方法和扩展技巧:1.Object对象Object是JavaScript中最基础的对象,几乎所有对象都继承自Object。常用方法Object.keys(obj):返回对象的所有可枚举属性的键名数组。constobj={a:1,b:2};console.log(Object.key</div> </li> <li><a href="/article/1892390738520502272.htm" title="前端基础入门:HTML、CSS 和 JavaScript" target="_blank">前端基础入门:HTML、CSS 和 JavaScript</a> <span class="text-muted">阿绵</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a><a class="tag" taget="_blank" href="/search/js/1.htm">js</a> <div>在现代网页开发中,前端技术扮演着至关重要的角色。无论是个人网站、企业官网,还是复杂的Web应用程序,前端开发的基础技术HTML、CSS和JavaScript都是每个开发者必须掌握的核心技能。本文将详细介绍这三者的基本概念及其应用一、HTML——网页的骨架HTML(HyperTextMarkupLanguage)是构建网页的基础语言。它是网页的结构和内容的标记语言,决定了网页上的文本、图像、表单等元</div> </li> <li><a href="/article/1892389477767245824.htm" title="网页制作03-html,css,javascript初认识のhtml的图像设置" target="_blank">网页制作03-html,css,javascript初认识のhtml的图像设置</a> <span class="text-muted">Ama_tor</span> <a class="tag" taget="_blank" href="/search/%E7%BD%91%E9%A1%B5%E5%88%B6%E4%BD%9C%E4%B8%93%E6%A0%8F/1.htm">网页制作专栏</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>一、图像格式网页中图像的格式有三种,Gif,Jpeg,PngGif:Graphicinterchangeformat图像交换格式,文件最多可使用256种颜色,最适合显示色调不连续或具有大面积单一颜色的图像,例如导航条、按钮、图标、徽标或其他具有统一色彩和色调的图像;还可以制作动态图像Jpeg:Giantphotographicexpectgroup,它是一种图像压缩格式,可包含数百万种颜色,不支持</div> </li> <li><a href="/article/1892386200312934400.htm" title="JavaScript——操作浏览器窗口" target="_blank">JavaScript——操作浏览器窗口</a> <span class="text-muted">yiqi_perss</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a> <div>学习内容:今天学习了alert提示框,提示框中的内容,就是alert后边小括号中的内容例如:alert('我要学JavaScript!');alert('我要学习!');学习总结:日常小总结例如:后面的分号;可以随便去掉,不影响运行效果。不能去掉小括号,否则会报错,不信你可以试试。必须是英文引号,否则会报错。课外扩展:历史渊源例如:ECMAScript是一种语言标准,而JavaScript是网景公</div> </li> <li><a href="/article/1892344959785299968.htm" title="百度极速版APP 自动脚本 javascript代码" target="_blank">百度极速版APP 自动脚本 javascript代码</a> <span class="text-muted">zaxjb123</span> <a class="tag" taget="_blank" href="/search/dubbo/1.htm">dubbo</a> <div>使用JavaScript编写针对百度极速版APP的自动化脚本通常涉及到使用WebView测试框架,比如Puppeteer或Selenium,这些工具允许你控制一个浏览器或WebView环境,从而与网页或APP中的Web内容进行交互。然而,对于原生APP(如百度极速版)的自动化测试,通常需要使用专门的移动应用自动化框架,如Appium。Appium支持多种编程语言,包括JavaScript。要使用J</div> </li> <li><a href="/article/1892333107923709952.htm" title="JavaScript案例(简易ATM机)" target="_blank">JavaScript案例(简易ATM机)</a> <span class="text-muted">fusheng_cn</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>Documentvarnum=100;do{varoperate=prompt("请输入您需要的操作:\n1.存钱\n2.取钱\n3.显示余额\n4.退出");switch(parseInt(operate)){case1://存钱varmoney1=prompt("请输入您需要存入的钱数:");varsum1=num+parseInt(money1);alert("您的余额为:"+sum1);n</div> </li> <li><a href="/article/1892318611989655552.htm" title="正则表达式regex" target="_blank">正则表达式regex</a> <span class="text-muted">GotoMeiben</span> <a class="tag" taget="_blank" href="/search/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/1.htm">正则表达式</a> <div>工具网站:RegExr:Learn,Build,&TestRegEx正则表达式(RegularExpression,Regex)是一种强大的字符串匹配工具,广泛用于文本搜索、数据处理和输入验证等场景。无论是Python、Java、JavaScript还是Shell脚本,Regex都是不可或缺的技能。本文将深入介绍正则表达式的各种用法,包括:基本匹配(字母、数字)特殊符号^$\b量词{}*+?字符类</div> </li> <li><a href="/article/1892279125322821632.htm" title="(01)ES6 教程——let与const、解构赋值、Symbol" target="_blank">(01)ES6 教程——let与const、解构赋值、Symbol</a> <span class="text-muted">欲游山河十万里</span> <a class="tag" taget="_blank" href="/search/web%E6%A1%86%E6%9E%B6%E5%AD%A6%E4%B9%A0/1.htm">web框架学习</a><a class="tag" taget="_blank" href="/search/es6/1.htm">es6</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a> <div>前言ES6,全称ECMAScript6.0,是JavaScript的下一个版本标准,2015.06发版。ES6主要是为了解决ES5的先天不足,比如JavaScript里并没有类的概念,但是目前浏览器的JavaScript是ES5版本,大多数高版本的浏览器也支持ES6,不过只实现了ES6的部分特性和功能。ECMAScript的背景JavaScript是大家所了解的语言名称,但是这个语言名称是商标(O</div> </li> <li><a href="/article/1892267654920597504.htm" title="Electron学习" target="_blank">Electron学习</a> <span class="text-muted">星空0107</span> <a class="tag" taget="_blank" href="/search/electron/1.htm">electron</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/ecmascript/1.htm">ecmascript</a> <div>Electron的简介Electron基于chromium和Node.js,让我们可以使用Javascript,HTML,CSS构建跨平台的桌面应用程序,同时Electron兼容Mac,Window,和Linux,可以构建出三个平台的应用程序Electron的安装运行cmd,输入npminit,然后一直按enter换行即可输入cnpmielectron-S(如果电脑没有安装cnpm会报错,需要安装</div> </li> <li><a href="/article/1892267275638075392.htm" title="electron学习笔记" target="_blank">electron学习笔记</a> <span class="text-muted">weixin_46452138</span> <a class="tag" taget="_blank" href="/search/electron/1.htm">electron</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a> <div>electron个人学习笔记一、electron简单了解Electron是一个跨平台的、基于Web前端技术的桌面GUI应用程序开发框架。可以使用HTML、CSS来绘制界面和控制布局,使用JavaScript来控制用户行为和业务逻辑,使用Node.js来通信、处理音频视频等,几乎所有的Web前端技术和框架(jQuery、Vue、React、Angular等)都可以应用到桌面GUI开发中。二、开发前基</div> </li> <li><a href="/article/1892263746714267648.htm" title="HTML之JavaScript对象" target="_blank">HTML之JavaScript对象</a> <span class="text-muted">录大大i</span> <a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>HTML之JavaScript对象Document/*参考文档地址:https://www.runoob.com/js/js-obj-intro.htmljsonjava数据类型变量数据类型变量运算符运算符流程控制流程控制函数方法对象面向对象常见对象*Java常用类(类库)1.数组1.数组创建方式2.数组API*/vararr=newArray();//类似于object集合vararr1=new</div> </li> <li><a href="/article/1892263494523351040.htm" title="探索AutoJS:一款强大的Android自动化工具" target="_blank">探索AutoJS:一款强大的Android自动化工具</a> <span class="text-muted">夏庭彭Maxine</span> <div>探索AutoJS:一款强大的Android自动化工具去发现同类优质开源项目:https://gitcode.com/在如今高度数字化的世界中,自动化扮演着越来越重要的角色。尤其在移动端,AutoJS是一个专为Android设计的强大自动化工具,它允许用户编写JavaScript代码来实现各种自动化任务,极大地提高了效率。这篇推荐文章将带你了解AutoJS的核心技术、应用场景以及其独特之处。项目简介</div> </li> <li><a href="/article/1892256681367236608.htm" title="虚拟DOM和真实DOM的区别" target="_blank">虚拟DOM和真实DOM的区别</a> <span class="text-muted">水煮庄周鱼鱼</span> <a class="tag" taget="_blank" href="/search/%E6%A6%82%E5%BF%B5/1.htm">概念</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>虚拟DOM(VirtualDOM)、DOM(RealDOM)是前端开发中常用的两种概念。什么是真实DOM?真实DOM是浏览器中实际存在的DOM结构,它由浏览器解析HTML生成,并且直接与浏览器交互。当页面中的数据发生变化时,真实DOM会重新计算布局和渲染,这个过程比较耗费性能。什么是虚拟DOM?虚拟DOM是一种在内存中以JavaScript对象的形式表示的轻量级的DOM结构。它是对真实DOM的一种</div> </li> <li><a href="/article/1892224500456550400.htm" title="【一文读懂】JS与Java的区别" target="_blank">【一文读懂】JS与Java的区别</a> <span class="text-muted">Bl_a_ck</span> <a class="tag" taget="_blank" href="/search/JS%E8%BF%9B%E9%98%B6/1.htm">JS进阶</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>相同点这两个语言除了注释长得差不多之外就没什么相同点了不同点设计初衷:JS从开发到上线就经历了10天的时间,最初的目的是实现网页端的动态交互效果,由于设计时间太短,语言的一些细节考虑得不够严谨,导致后来很长一段时间,Javascript写出来的程序混乱不堪。所以现在有了TS来代替JSJava设计用于编写跨平台的、运行在虚拟机上的应用程序设计理念:Java是典型的面相对象的语言,具有面向对象的三大特</div> </li> <li><a href="/article/1892219834280767488.htm" title="【如何实现 JavaScript 的防抖和节流?】" target="_blank">【如何实现 JavaScript 的防抖和节流?】</a> <span class="text-muted">程序员远仔</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E9%9D%A2%E8%AF%95%E9%AB%98%E9%A2%91%E9%97%AE%E9%A2%98%E5%AE%9D%E5%85%B8/1.htm">前端面试高频问题宝典</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E6%A1%86%E6%9E%B6/1.htm">前端框架</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/html5/1.htm">html5</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>如何实现JavaScript的防抖和节流?前言防抖(Debounce)和节流(Throttle)是JavaScript中优化高频事件处理的两种常用技术。它们可以有效减少事件处理函数的调用次数,提升性能并改善用户体验。本文将详细介绍防抖和节流的实现原理及其应用场景。关键词JavaScript、防抖、节流、高频事件、性能优化、事件处理、前端开发、前端面试、前端基础、前端进阶、前端工程化、前端开发最佳实</div> </li> <li><a href="/article/1892214288949506048.htm" title="写轮眼按钮特效:打造炫酷网页按钮" target="_blank">写轮眼按钮特效:打造炫酷网页按钮</a> <span class="text-muted">孤客网络科技工作室</span> <a class="tag" taget="_blank" href="/search/html%2Bcss%E7%BD%91%E9%A1%B5%E5%BC%80%E5%8F%91/1.htm">html+css网页开发</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a> <div>写轮眼按钮特效:打造炫酷网页按钮引言在网页设计中,按钮是用户交互的重要元素之一。一个炫酷的按钮特效不仅能提升用户体验,还能为网页增添独特的视觉吸引力。今天,我们将通过CSS和JavaScript来实现一个“写轮眼”按钮特效,灵感来源于《火影忍者》中的经典元素——写轮眼。效果预览在开始之前,我们先来看一下最终的效果:实现步骤1.index.html(部分代码)首先,我们需要创建一个简单的HTML结构</div> </li> <li><a href="/article/1892206853664862208.htm" title="前端 window.print() 打印图片" target="_blank">前端 window.print() 打印图片</a> <span class="text-muted">BillKu</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>在使用document.write时,确保内容加载完成后再执行其他操作(如print),可以通过以下方法实现:1.使用window.onload事件window.onload事件会在页面所有资源(包括图片、脚本等)加载完成后触发。javascript复制window.onload=function(){document.write("页面已加载完成");window.print();//确保内容加</div> </li> <li><a href="/article/1892201180927422464.htm" title="今日-Vue框架" target="_blank">今日-Vue框架</a> <span class="text-muted">幼儿园口算大王</span> <a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>什么是VUE框架?Vue是一款用于构建用户界面的JavaScript框架。它基于标准HTML、CSS和JavaScript构建,并提供了一套声明式的、组件化的编程模型,帮助你高效地开发用户界面。Vue的核心是一个响应的数据绑定系统,它让数据与DOM保持同步非常简单。Vue的目标是通过尽可能简单的API实现响应的数据绑定和组合的视图组件。它不仅易于上手,还便于与第三方库或既有项目整合。Vue也被称为</div> </li> <li><a href="/article/1892177468253597696.htm" title="redux中间件-redux-thunk" target="_blank">redux中间件-redux-thunk</a> <span class="text-muted">#清词#</span> <a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a><a class="tag" taget="_blank" href="/search/%E4%B8%AD%E9%97%B4%E4%BB%B6/1.htm">中间件</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>今天,让我们一起揭开redux中间件-redux-thunk的神秘面纱。本次小文章将会以任务驱动的形式去逐步讲解thunk及其在redux中的使用,这样易于理解,有理有据能够化抽象为具体。首先,为什么要使用redux中间件?什么是中间件?中间件有什么作用呢?redux是一个通用的JavaScript状态管理容器。对于state的变化是通过触发dispatch一个action,然后最交给reduce</div> </li> <li><a href="/article/1892131196150804480.htm" title="Bootstrap CSS 概览" target="_blank">Bootstrap CSS 概览</a> <span class="text-muted">froginwe11</span> <a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>BootstrapCSS概览引言Bootstrap是一个流行的前端框架,它可以帮助开发者快速构建响应式、移动优先的网站和应用程序。Bootstrap使用CSS、HTML和JavaScript来构建界面,其中CSS部分提供了丰富的样式和组件,使得开发者可以轻松实现各种设计效果。本文将为您提供一个关于BootstrapCSS的概览,帮助您了解其核心功能和用法。BootstrapCSS简介Bootstr</div> </li> <li><a href="/article/1892131069923225600.htm" title="jQuery AJAX 方法详解" target="_blank">jQuery AJAX 方法详解</a> <span class="text-muted">froginwe11</span> <a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>jQueryAJAX方法详解引言随着互联网技术的不断发展,前端开发领域的技术也在不断更新迭代。jQuery作为一种广泛使用的前端JavaScript库,极大地简化了DOM操作和事件处理。在众多jQuery功能中,AJAX(AsynchronousJavaScriptandXML)方法尤为突出,它允许我们在不重新加载整个页面的情况下与服务器进行异步通信。本文将详细介绍jQueryAJAX方法的使用,</div> </li> <li><a href="/article/1892117680668864512.htm" title="【HarmonyOS NEXT】异步编程的神器之Promise" target="_blank">【HarmonyOS NEXT】异步编程的神器之Promise</a> <span class="text-muted"></span> <a class="tag" taget="_blank" href="/search/androidios%E5%89%8D%E7%AB%AF/1.htm">androidios前端</a> <div>1.背景异步编程对ArkTS这门语言来说实在太重要。因为ArkTS是单线程模型【单线程模型指的是,JavaScript只在一个线程上运行。也就是说,JavaScript同时只能执行一个任务,其他任务都必须在后面排队等待。】如果没有异步编程,很容易就写出回调地狱般的屎山代码。现在在ArkTS中要实现异步并发任务时,最合适的就是使用Promise和async/await【在此之前JS异步的发展历程是c</div> </li> <li><a href="/article/109.htm" title="统一思想认识" target="_blank">统一思想认识</a> <span class="text-muted">永夜-极光</span> <a class="tag" taget="_blank" href="/search/%E6%80%9D%E6%83%B3/1.htm">思想</a> <div>1.统一思想认识的基础,才能有的放矢  原因:    总有一种描述事物的方式最贴近本质,最容易让人理解.    如何让教育更轻松,在于找到最适合学生的方式.          难点在于,如何模拟对方的思维基础选择合适的方式.   &</div> </li> <li><a href="/article/236.htm" title="Joda Time使用笔记" target="_blank">Joda Time使用笔记</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/joda+time/1.htm">joda time</a> <div>Joda Time的介绍可以参考这篇文章: http://www.ibm.com/developerworks/cn/java/j-jodatime.html 工作中也常常用到Joda Time,为了避免每次使用都查API,记录一下常用的用法:     /** * DateTime变化(增减) */ @Tes</div> </li> <li><a href="/article/363.htm" title="FileUtils API" target="_blank">FileUtils API</a> <span class="text-muted">eksliang</span> <a class="tag" taget="_blank" href="/search/FileUtils/1.htm">FileUtils</a><a class="tag" taget="_blank" href="/search/FileUtils+API/1.htm">FileUtils API</a> <div>转载请出自出处:http://eksliang.iteye.com/blog/2217374 一、概述 这是一个Java操作文件的常用库,是Apache对java的IO包的封装,这里面有两个非常核心的类FilenameUtils跟FileUtils,其中FilenameUtils是对文件名操作的封装;FileUtils是文件封装,开发中对文件的操作,几乎都可以在这个框架里面找到。 非常的好用。 </div> </li> <li><a href="/article/490.htm" title="各种新兴技术" target="_blank">各种新兴技术</a> <span class="text-muted">不懂事的小屁孩</span> <a class="tag" taget="_blank" href="/search/%E6%8A%80%E6%9C%AF/1.htm">技术</a> <div>1:gradle Gradle 是以 Groovy 语言为基础,面向Java应用为主。基于DSL(领域特定语言)语法的自动化构建工具。 现在构建系统常用到maven工具,现在有更容易上手的gradle, 搭建java环境: http://www.ibm.com/developerworks/cn/opensource/os-cn-gradle/ 搭建android环境: http://m</div> </li> <li><a href="/article/617.htm" title="tomcat6的https双向认证" target="_blank">tomcat6的https双向认证</a> <span class="text-muted">酷的飞上天空</span> <a class="tag" taget="_blank" href="/search/tomcat6/1.htm">tomcat6</a> <div>1.生成服务器端证书 keytool -genkey -keyalg RSA -dname "cn=localhost,ou=sango,o=none,l=china,st=beijing,c=cn" -alias server -keypass password -keystore server.jks -storepass password -validity 36</div> </li> <li><a href="/article/744.htm" title="托管虚拟桌面市场势不可挡" target="_blank">托管虚拟桌面市场势不可挡</a> <span class="text-muted">蓝儿唯美</span> <div>用户还需要冗余的数据中心,dinCloud的高级副总裁兼首席营销官Ali Din指出。该公司转售一个MSP可以让用户登录并管理和提供服务的用于DaaS的云自动化控制台,提供服务或者MSP也可以自己来控制。 在某些情况下,MSP会在dinCloud的云服务上进行服务分层,如监控和补丁管理。 MSP的利润空间将根据其参与的程度而有所不同,Din说。 “我们有一些合作伙伴负责将我们推荐给客户作为个</div> </li> <li><a href="/article/871.htm" title="spring学习——xml文件的配置" target="_blank">spring学习——xml文件的配置</a> <span class="text-muted">a-john</span> <a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a> <div>在Spring的学习中,对于其xml文件的配置是必不可少的。在Spring的多种装配Bean的方式中,采用XML配置也是最常见的。以下是一个简单的XML配置文件: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.or</div> </li> <li><a href="/article/998.htm" title="HDU 4342 History repeat itself 模拟" target="_blank">HDU 4342 History repeat itself 模拟</a> <span class="text-muted">aijuans</span> <a class="tag" taget="_blank" href="/search/%E6%A8%A1%E6%8B%9F/1.htm">模拟</a> <div>来源:http://acm.hdu.edu.cn/showproblem.php?pid=4342 题意:首先让求第几个非平方数,然后求从1到该数之间的每个sqrt(i)的下取整的和。 思路:一个简单的模拟题目,但是由于数据范围大,需要用__int64。我们可以首先把平方数筛选出来,假如让求第n个非平方数的话,看n前面有多少个平方数,假设有x个,则第n个非平方数就是n+x。注意两种特殊情况,即</div> </li> <li><a href="/article/1125.htm" title="java中最常用jar包的用途" target="_blank">java中最常用jar包的用途</a> <span class="text-muted">asia007</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>java中最常用jar包的用途 jar包用途axis.jarSOAP引擎包commons-discovery-0.2.jar用来发现、查找和实现可插入式接口,提供一些一般类实例化、单件的生命周期管理的常用方法.jaxrpc.jarAxis运行所需要的组件包saaj.jar创建到端点的点到点连接的方法、创建并处理SOAP消息和附件的方法,以及接收和处理SOAP错误的方法.  w</div> </li> <li><a href="/article/1252.htm" title="ajax获取Struts框架中的json编码异常和Struts中的主控制器异常的解决办法" target="_blank">ajax获取Struts框架中的json编码异常和Struts中的主控制器异常的解决办法</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/js/1.htm">js</a><a class="tag" taget="_blank" href="/search/json%E7%BC%96%E7%A0%81%E8%BF%94%E5%9B%9E%E5%BC%82%E5%B8%B8/1.htm">json编码返回异常</a> <div>一:ajax获取自定义Struts框架中的json编码  出现以下 问题:       1,强制flush输出  json编码打印在首页 2, 不强制flush js会解析json 打印出来的是错误的jsp页面   却没有跳转到错误页面 3,  ajax中的dataType的json 改为text 会</div> </li> <li><a href="/article/1379.htm" title="JUnit使用的设计模式" target="_blank">JUnit使用的设计模式</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a><a class="tag" taget="_blank" href="/search/JUnit/1.htm">JUnit</a> <div>JUnit源代码涉及使用了大量设计模式 1、模板方法模式(Template Method)         定义一个操作中的算法骨架,而将一些步骤延伸到子类中去,使得子类可以不改变一个算法的结构,即可重新定义该算法的某些特定步骤。这里需要复用的是算法的结构,也就是步骤,而步骤的实现可以在子类中完成。   </div> </li> <li><a href="/article/1506.htm" title="Linux常用命令(摘录)" target="_blank">Linux常用命令(摘录)</a> <span class="text-muted">sunjing</span> <a class="tag" taget="_blank" href="/search/crond/1.htm">crond</a><a class="tag" taget="_blank" href="/search/chkconfig/1.htm">chkconfig</a> <div>chkconfig --list   查看linux所有服务 chkconfig --add servicename 添加linux服务 netstat -apn | grep 8080  查看端口占用 env 查看所有环境变量 echo $JAVA_HOME 查看JAVA_HOME环境变量   安装编译器 yum install -y gcc</div> </li> <li><a href="/article/1633.htm" title="【Hadoop一】Hadoop伪集群环境搭建" target="_blank">【Hadoop一】Hadoop伪集群环境搭建</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/hadoop/1.htm">hadoop</a> <div> 结合网上多份文档,不断反复的修正hadoop启动和运行过程中出现的问题,终于把Hadoop2.5.2伪分布式安装起来,跑通了wordcount例子。Hadoop的安装复杂性的体现之一是,Hadoop的安装文档非常多,但是能一个文档走下来的少之又少,尤其是Hadoop不同版本的配置差异非常的大。Hadoop2.5.2于前两天发布,但是它的配置跟2.5.0,2.5.1没有分别。 &nb</div> </li> <li><a href="/article/1760.htm" title="Anychart图表系列五之事件监听" target="_blank">Anychart图表系列五之事件监听</a> <span class="text-muted">白糖_</span> <a class="tag" taget="_blank" href="/search/chart/1.htm">chart</a> <div>创建图表事件监听非常简单:首先是通过addEventListener('监听类型',js监听方法)添加事件监听,然后在js监听方法中定义具体监听逻辑。 以钻取操作为例,当用户点击图表某一个point的时候弹出point的name和value,代码如下: <script> //创建AnyChart var chart = new AnyChart(); //添加钻取操作&quo</div> </li> <li><a href="/article/1887.htm" title="Web前端相关段子" target="_blank">Web前端相关段子</a> <span class="text-muted">braveCS</span> <a class="tag" taget="_blank" href="/search/web%E5%89%8D%E7%AB%AF/1.htm">web前端</a> <div>Web标准:结构、样式和行为分离   使用语义化标签 0)标签的语义:使用有良好语义的标签,能够很好地实现自我解释,方便搜索引擎理解网页结构,抓取重要内容。去样式后也会根据浏览器的默认样式很好的组织网页内容,具有很好的可读性,从而实现对特殊终端的兼容。 1)div和span是没有语义的:只是分别用作块级元素和行内元素的区域分隔符。当页面内标签无法满足设计需求时,才会适当添加div</div> </li> <li><a href="/article/2014.htm" title="编程之美-24点游戏" target="_blank">编程之美-24点游戏</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B%E4%B9%8B%E7%BE%8E/1.htm">编程之美</a> <div> import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; import java.util.List; import java.util.Random; import java.util.Set; public class PointGame { /**编程之美 </div> </li> <li><a href="/article/2141.htm" title="主页面子页面传值总结" target="_blank">主页面子页面传值总结</a> <span class="text-muted">chengxuyuancsdn</span> <a class="tag" taget="_blank" href="/search/%E6%80%BB%E7%BB%93/1.htm">总结</a> <div>1、showModalDialog returnValue是javascript中html的window对象的属性,目的是返回窗口值,当用window.showModalDialog函数打开一个IE的模式窗口时,用于返回窗口的值 主界面 var sonValue=window.showModalDialog("son.jsp"); 子界面 window.retu</div> </li> <li><a href="/article/2268.htm" title="[网络与经济]互联网+的含义" target="_blank">[网络与经济]互联网+的含义</a> <span class="text-muted">comsci</span> <a class="tag" taget="_blank" href="/search/%E4%BA%92%E8%81%94%E7%BD%91%2B/1.htm">互联网+</a> <div>       互联网+后面是一个人的名字 = 网络控制系统       互联网+你的名字 =  网络个人数据库       每日提示:如果人觉得不舒服,千万不要外出到处走动,就呆在床上,玩玩手游,更不能够去开车,现在交通状况不</div> </li> <li><a href="/article/2395.htm" title="oracle 创建视图 with check option" target="_blank">oracle 创建视图 with check option</a> <span class="text-muted">daizj</span> <a class="tag" taget="_blank" href="/search/%E8%A7%86%E5%9B%BE/1.htm">视图</a><a class="tag" taget="_blank" href="/search/view/1.htm">view</a><a class="tag" taget="_blank" href="/search/oralce/1.htm">oralce</a> <div>我们来看下面的例子: create or replace view testview as select empno,ename from emp where ename like ‘M%’ with check option; 这里我们创建了一个视图,并使用了with check option来限制了视图。 然后我们来看一下视图包含的结果: select * from testv</div> </li> <li><a href="/article/2522.htm" title="ToastPlugin插件在cordova3.3下使用" target="_blank">ToastPlugin插件在cordova3.3下使用</a> <span class="text-muted">dibov</span> <a class="tag" taget="_blank" href="/search/Cordova/1.htm">Cordova</a> <div>    自己开发的Todos应用,想实现“ 再按一次返回键退出程序 ”的功能,采用网上的ToastPlugins插件,发现代码或文章基本都是老版本,运行问题比较多。折腾了好久才弄好。下面吧基于cordova3.3下的ToastPlugins相关代码共享。       ToastPlugin.java package&nbs</div> </li> <li><a href="/article/2649.htm" title="C语言22个系统函数" target="_blank">C语言22个系统函数</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/c/1.htm">c</a><a class="tag" taget="_blank" href="/search/function/1.htm">function</a> <div>C语言系统函数一、数学函数下列函数存放在math.h头文件中Double floor(double num) 求出不大于num的最大数。Double fmod(x, y) 求整数x/y的余数。Double frexp(num, exp); double num; int *exp; 将num分为数字部分(尾数)x和 以2位的指数部分n,即num=x*2n,指数n存放在exp指向的变量中,返回x。D</div> </li> <li><a href="/article/2776.htm" title="开发一个类的流程" target="_blank">开发一个类的流程</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91/1.htm">开发</a> <div>本人近日根据自己的开发经验总结了一个类的开发流程。这个流程适用于单独开发的构件,并不适用于对一个项目中的系统对象开发。开发出的类可以存入私人类库,供以后复用。   以下是开发流程: 1. 明确类的功能,抽象出类的大概结构 2. 初步设想类的接口 3. 类名设计(驼峰式命名) 4. 属性设置(权限设置) 判断某些变量是否有必要作为成员属</div> </li> <li><a href="/article/2903.htm" title="java 并发" target="_blank">java 并发</a> <span class="text-muted">shuizhaosi888</span> <a class="tag" taget="_blank" href="/search/java+%E5%B9%B6%E5%8F%91/1.htm">java 并发</a> <div>能够写出高伸缩性的并发是一门艺术   在JAVA SE5中新增了3个包 java.util.concurrent java.util.concurrent.atomic java.util.concurrent.locks 在java的内存模型中,类的实例字段、静态字段和构成数组的对象元素都会被多个线程所共享,局部变量与方法参数都是线程私有的,不会被共享。 </div> </li> <li><a href="/article/3030.htm" title="Spring Security(11)——匿名认证" target="_blank">Spring Security(11)——匿名认证</a> <span class="text-muted">234390216</span> <a class="tag" taget="_blank" href="/search/Spring+Security/1.htm">Spring Security</a><a class="tag" taget="_blank" href="/search/ROLE_ANNOYMOUS/1.htm">ROLE_ANNOYMOUS</a><a class="tag" taget="_blank" href="/search/%E5%8C%BF%E5%90%8D/1.htm">匿名</a> <div>匿名认证 目录 1.1     配置 1.2     AuthenticationTrustResolver          对于匿名访问的用户,Spring Security支持为其建立一个匿名的AnonymousAuthenticat</div> </li> <li><a href="/article/3157.htm" title="NODEJS项目实践0.2[ express,ajax通信...]" target="_blank">NODEJS项目实践0.2[ express,ajax通信...]</a> <span class="text-muted">逐行分析JS源代码</span> <a class="tag" taget="_blank" href="/search/Ajax/1.htm">Ajax</a><a class="tag" taget="_blank" href="/search/nodejs/1.htm">nodejs</a><a class="tag" taget="_blank" href="/search/express/1.htm">express</a> <div>  一、前言         通过上节学习,我们已经        ubuntu系统搭建了一个可以访问的nodejs系统,并做了nginx转发。本节原要做web端服务 及 mongodb的存取,但写着写着,web端就</div> </li> <li><a href="/article/3284.htm" title="在Struts2 的Action中怎样获取表单提交上来的多个checkbox的值" target="_blank">在Struts2 的Action中怎样获取表单提交上来的多个checkbox的值</a> <span class="text-muted">lhbthanks</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/struts/1.htm">struts</a><a class="tag" taget="_blank" href="/search/checkbox/1.htm">checkbox</a> <div>第一种方法:获取结果String类型 在 Action 中获得的是一个 String 型数据,每一个被选中的 checkbox 的 value 被拼接在一起,每个值之间以逗号隔开(,)。 所以在 Action 中定义一个跟 checkbox 的 name 同名的属性来接收这些被选中的 checkbox 的 value 即可。 以下是实现的代码: 前台 HTML 代码: </div> </li> <li><a href="/article/3411.htm" title="003.Kafka基本概念" target="_blank">003.Kafka基本概念</a> <span class="text-muted">nweiren</span> <a class="tag" taget="_blank" href="/search/hadoop/1.htm">hadoop</a><a class="tag" taget="_blank" href="/search/kafka/1.htm">kafka</a> <div>Kafka基本概念:Topic、Partition、Message、Producer、Broker、Consumer。 Topic:             消息源(Message)的分类。 Partition:             Topic物理上的分组,一</div> </li> <li><a href="/article/3538.htm" title="Linux环境下安装JDK" target="_blank">Linux环境下安装JDK</a> <span class="text-muted">roadrunners</span> <a class="tag" taget="_blank" href="/search/jdk/1.htm">jdk</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a> <div>1、准备工作 创建JDK的安装目录: mkdir -p /usr/java/   下载JDK,找到适合自己系统的JDK版本进行下载: http://www.oracle.com/technetwork/java/javase/downloads/index.html   把JDK安装包下载到/usr/java/目录,然后进行解压: tar -zxvf jre-7</div> </li> <li><a href="/article/3665.htm" title="Linux忘记root密码的解决思路" target="_blank">Linux忘记root密码的解决思路</a> <span class="text-muted">tomcat_oracle</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a> <div>1:使用同版本的linux启动系统,chroot到忘记密码的根分区passwd改密码   2:grub启动菜单中加入init=/bin/bash进入系统,不过这时挂载的是只读分区。根据系统的分区情况进一步判断.   3: grub启动菜单中加入 single以单用户进入系统.   4:用以上方法mount到根分区把/etc/passwd中的root密码去除   例如:   ro</div> </li> <li><a href="/article/3792.htm" title="跨浏览器 HTML5 postMessage 方法以及 message 事件模拟实现" target="_blank">跨浏览器 HTML5 postMessage 方法以及 message 事件模拟实现</a> <span class="text-muted">xueyou</span> <a class="tag" taget="_blank" href="/search/jsonp/1.htm">jsonp</a><a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a><a class="tag" taget="_blank" href="/search/%E6%A1%86%E6%9E%B6/1.htm">框架</a><a class="tag" taget="_blank" href="/search/UI/1.htm">UI</a><a class="tag" taget="_blank" href="/search/html5/1.htm">html5</a> <div>postMessage 是 HTML5 新方法,它可以实现跨域窗口之间通讯。到目前为止,只有 IE8+, Firefox 3, Opera 9, Chrome 3和 Safari 4 支持,而本篇文章主要讲述 postMessage 方法与 message 事件跨浏览器实现。postMessage 方法 JSONP 技术不一样,前者是前端擅长跨域文档数据即时通讯,后者擅长针对跨域服务端数据通讯,p</div> </li> </ul> </div> </div> </div> <div> <div class="container"> <div class="indexes"> <strong>按字母分类:</strong> <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a> </div> </div> </div> <footer id="footer" class="mb30 mt30"> <div class="container"> <div class="footBglm"> <a target="_blank" href="/">首页</a> - <a target="_blank" href="/custom/about.htm">关于我们</a> - <a target="_blank" href="/search/Java/1.htm">站内搜索</a> - <a target="_blank" href="/sitemap.txt">Sitemap</a> - <a target="_blank" href="/custom/delete.htm">侵权投诉</a> </div> <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved. <!-- <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>--> </div> </div> </footer> <!-- 代码高亮 --> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script> <link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/> <script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script> </body> </html>