本文搜集了 22 个 Web 在线编辑器,它们基本代表了当前 Web 编辑器的现状:
"JavaScript"分类的文章
今天在做一个检测textarea里字数的时候,才发现onpropertychange是IE专有的东西,囧......
在FF下要用oninput这个函数,并且要用addEventListener来进行注册。
另外onpropertychange要比onchange检测范围广一点,onchange需要执行事件来触发,而onpropertychange可以检测对象属性的任何改变。
今天在做Uchome二次开发的时候遇到一个奇怪的问题,js报错" 'expected identifier, string or number'",这个问题只在IE6,7中出现,IE8和FF下均无问题。很奇怪,以前从来没有遇到过类似的情况。
琢磨了N久没有头绪,于是Google之,发现几篇国外的文章,说是一些多余的逗号会导致这个问题。再一对应,果然,我在定义一个对象的时候这样搞:
- var options = {
- after_click : function(data){
- data.handdle.parent().prev('td').find('input').val(data.value);
- },
- image : 'images/star.gif',
- max : 5,
- }
对了,就是max: 5,的那个逗号在搞怪了,估计是最近写python写顺了,在最后一个元素后加上了逗号。
老外也很幽默,在说这个事情的时候说道“ thanks again Microsoft for making web developers lifes so difficult.”,呵呵,他说感谢微软让web开发者的人生变得如此惨淡,很有嘲讽的味道。
顺便提一下,在js中用分号作为一行结尾貌似不是必须的,但是最好还是保持在每行后加分号的习惯,如果不加的话在进行js文件压缩后会出问题。
IE6就是坏,在编辑器里插入图片宽度和外层容器差不多,然后在同一行再输入点东西的话,前台页面就会完全乱套,用word-break:break- all;之类的CSS也不行。Firefox和IE7还比较好,知道自动换行自己调整一下。CSS我是调的很厌烦了,索性搞了个简单的图片缩放:
用法很简单,第一个参数就是图片所在的父级容器id,第二个是允许的图片宽度,默认是父级容器宽度的80%,第三个是图片高度,,默认是父级容器高度的80%。
要使用的话这样就好了:
- <script type="text/javascript">
- $(document).ready(function() {
- $.imgResize('blog_content',600,480);
- });
- </script>
恩,原版是在www.corrie.net.cn下载的,所有用法大家可以直接去那里看。
原版的消息提示框不能跟随窗口滚动而滚动,我主要是加了个这个功能。
首先是将最外层那个div的positioin属性设置为了fixed,然后为兼容ie6在第37行this.rmjq_messager(this.time);下添加了:
//hacked by sharmy
/*FF and IE7 can use 'position:fixed',but ie6 need to set window top dynamically.*/
if($.browser.msie && $.browser.version == 6) {
$('#jq_messager').css('position','absolute');
$(window).scroll(function(){
var f_top = $(window).scrollTop() + $(window).height() - ($("#jq_messager").outerWidth()/2);
$('#jq_messager').css( 'top' , f_top );
});
}
附上修改后的文件:jquery.messager.hackBySharmy.7z
1,总是从ID选择器开始继承
在jQuery中最快的选择器是ID选择器,因为它直接来自于JavaScript的getElementById()方法。
例如有一段HTML代码:
<div id="content">
<form method="post" action="#">
<h2>交通信号灯</h2>
<ul id="traffic_light">
<li><input type="radio" class="on" name="light" value="red" /> 红色</li>
<li><input type="radio" class="off" name="light" value="yellow" /> 黄色</li>
<li><input type="radio" class="off" name="light" value="green" /> 绿色</li>
</ul>
<input class="button" id="traffic_button" type="submit" value="Go" />
</form>
</div>
如果采用下面的选择器,那么效率是低效的。
var traffic_button = $("#content .button");
因为button已经有ID了,我们可以直接使用ID选择器。如下所示:
var traffic_button = $("#traffic_button");
当然 这只是对于单一的元素来讲。如果你需要选择多个元素,这必然会涉及到 DOM遍历和循环,
为了提高性能,建议从最近的ID开始继承。
如下所示:
var traffic_lights = $("#traffic_light input");


最新评论