[ Content | Sidebar ]

Archives for 十一月, 2008

有用的js code:重载页面中的样式

平时开发时可能要频繁的刷新页面,而如果测试机很慢,或者经常重启,往往要按一下F5,去reader看几条新闻然后再回来看效果,由于静态文件绑本地host,所以可以单独重载样式,从而避免刷新.

刷新页面样式

可以把此链接拖到书签栏,只要点这个书签,就可以重载页面的样式了~

代码很简单,木啥技术含量

void (function(){
	var ls = document.getElementsByTagName('link');
	for ( var i = ls.length - 1 ; i >= 0; i --) {
		if ( ls[i].getAttribute('rel').toLowerCase() == 'stylesheet' ) {
			ls[i].href +=  /\?/.test( ls[i].href ) ? 'x' : '?ver=x' ;
		}
	}
})();
Copy Code 

偶的又一wp插件:超级表情

8.29 2009
更新一下,没想到还有同学在下载这个东西哈哈~
最近加了一套柏夫表情,发现图片大小不一样会有错位的问题,修正一下
效果就看我现在用的就好了~

下载:x-emotions_0_1_3

————————–

回复andy同学:如何自定义框的高度

请下载下面的样式文件

style.css

用记事本打开此文件

#xemotion_dialog_wraper{
	width:100%;
	height:400px;/*把这个高度改成想要的高度*/
	position:absolute;
	text-align:left;
}
Copy Code 

然后传到插件的img目录覆盖原文件即可
—————————————–

原来俺的emotion 一直都是拼错的,少了个c
————>emoticons
——————————————

有同学反映评论页没有生效,请确定一下评论框textarea元素的id是否为’comment’,是否安装了其他评论编辑插件

——————————————

更新到0.1.2

修正Maria同学提交的bug

  • 为什么除了第一次,以后再用表情的分类都是乱码?

页面里没有指明编码方式,修正了~

下载:x-emotions_0_1_2

—————————————-

更新一下:修正了 伊迭 同学反映的两个bug\

  • 出现Fatal error: require_once() [function.require]: Failed opening required ‘../../../wp-load.php’ (include_path=’.:/usr/local/php5/lib/php’) in ……dialog_for_comment.php on line 69
  • 在你这显示正常,在我那就掉位了…显示不全
    几个浏览器都试遍了,就Opera好点….

0.1.1版本:x-emotions_0_1_1

———————————————–

周末很无聊,写日志很无聊,额,于是写了一个插件:x-emotions

,啊哈哈哈哈,想贴就贴~

下载: x-emotions_0_1

此插件最大的优点就是:可以添加多套表情,只要在表情目录新建一文件夹把新表情传到目录即可

安装时注意:里面的emotions文件夹的权限最好为777,cache文件要写到此目录

使用说明:

添加新表情:在插件的emotions目录新建一个目录(英文)然后把表情图片传到此目录,如果需要给此套新表情起个名字,则把名字写到一个utf-8编码的名为name.txt的文本文件里,并把此文件传到对应的表情目录.

注意:添加新表情之后必须删除emotions目录下的名字为’cache_for_editor.php’和’cache_for_comment.php’两个缓存文件,重建缓存之后才能看到新传的表情

自定义变量:

x-emotions.php 里的

$blue_emotions_enable_in_comments = true

//是否在留言启用此插件,默认为true,启用

screenshot

-------------------------

在编辑器使用

在编辑器使用时的对话框

在留言使用

在留言使用时的界面


有用的js code:获取和设置URL中的参数

勘误版

    function getQuery( key , url )
    {
        url = url || window.location.href;
        if ( url.indexOf( '#' ) !== -1 )
            url = url.substring( 0 , url.indexOf( '#' ) );
        var rts = [],rt;
        var queryReg = new RegExp( '(^|\\?|&)' + key + '=([^&]*)(?=&|$|#)' , 'g' );
        while ( ( rt = queryReg.exec( url ) ) != null )
        {
            rts.push( decodeURIComponent( rt[ 2 ] ) );
        }
        if ( rts.length == 0 ) return null;
        if ( rts.length == 1 ) return rts[ 0 ];
        return rts;
    }
 
 
    function setQuery( key , value , url )
    {
 
        url = url || window.location.href;
        var hash = '';
 
        if ( url.indexOf( '#' ) !== -1 )
            hash = url.substring( url.indexOf( '#' ) );
 
        url = url.replace( hash , '' );
        url = url.replace( new RegExp( '(^|\\?|&)' + key + '=[^&]*(?=&|#|$)' , 'g' ) , '' );
        value = isArray( value ) ? value : [ value ];
 
        for ( var i = value.length - 1;i >= 0;i --)
        {
            value[ i ] = encodeURIComponent( value[ i ] );
        }
 
        var p = key + '=' + value.join( '&' + key + '=' );
        return url + ( /\?/.test( url ) ? '&' : '?' ) + p + hash;
    }
Copy Code 

增强版,支持同名参数

    function getQuery( key , url )
    {
        url = url || window.location.href;
        var rts = [],rt;
        var queryReg = new RegExp( '(^|\\?|&)' + key + '=([^&]*)(?=&|$|#)' , 'g' );
        while ( ( rt = queryReg.exec( url ) ) != null )
        {
            rts.push( decodeURIComponent( rt[ 2 ] ) );
        }
        if ( rts.length == 0 ) return null;
        if ( rts.length == 1 ) return rts[ 0 ];
        return rts;
    }
 
 
    function setQuery( key , value , url )
    {
 
        url = url || window.location.href;
        url = url.replace( new RegExp( '(^|\\?|&)' + key + '=[^&]*(?=&|$|#)' , 'g' ) , '' );
        value = value.splice ? value : [ value ];
 
        for ( var i = value.length - 1;i >= 0;i --)
        {
            value[ i ] = encodeURIComponent( value[ i ] );
        }
 
        var p = key + '=' + value.join( '&' + key + '=' );
        return url + ( /\?/.test( url ) ? '&' : '?' ) + p;
    }
Copy Code 

虽然正则用的不怎么样,但还是偷懒首选~

	function getQuery( key , url ) {
		var reg = new RegExp( '^\\S*(\\?|&)' + key + '=([^&]*)\\S*$' );
		var l = url || window.location.href;
		if ( reg.test( l ) ) {
			return decodeURIComponent( l.replace( reg , '$2' ) );
		} else {
			return null;
		}
	}
 
	function setQuery( key , value , url ) {
		var reg = new RegExp( key + '=[^&]*(?=&|$)' );
		var l = url || window.location.href;
		if ( reg.test( l ) ) {
			return l.replace( reg , key + '=' + encodeURIComponent( value ) );
		}else{
			return l + ( /\?/.test( l ) ? '&' : '?' ) + key + '=' + encodeURIComponent( value );
		}
	}
Copy Code 

ie与firefox操作iframe中DOM节点的一点不同

依次在两个浏览器中运行以下代码

1
2
3
4
5
6
7
8
9
10
11
12
13
<html>
	<body>
		<iframe id="myiframe"></iframe>
	</body>
</html>
<script type="text/javascript">
	var doc = document.getElementById('myiframe').contentWindow.document;
	var textNode = document.createTextNode('yes~');
	doc.open();
	doc.write('<html><body></body></html>');
	doc.close();
	doc.body.appendChild(textNode);
</script>
Copy Code | Run Code
1
2
3
4
5
6
7
8
9
10
11
12
13
<html>
	<body>
		<iframe id="myiframe"></iframe>
	</body>
</html>
<script type="text/javascript">
	var doc = document.getElementById('myiframe').contentWindow.document;
	var textNode = doc.createTextNode('yes~');
	doc.open();
	doc.write('<html><body></body></html>');
	doc.close();
	doc.body.appendChild(textNode);
</script>
Copy Code | Run Code
1
2
3
4
5
6
7
8
9
10
11
12
13
<html>
	<body>
		<iframe id="myiframe"></iframe>
	</body>
</html>
<script type="text/javascript">
	var doc = document.getElementById('myiframe').contentWindow.document;
	doc.open();
	doc.write('<html><body></body></html>');
	doc.close();
	var textNode = doc.createTextNode('yes~');
	doc.body.appendChild(textNode);
</script>
Copy Code | Run Code

三段代码在firefox下面都是ok的,但是只有第三段在ie下面能正常运行,前两段都会报参数无效的错误….
这说明在ie下只有使用iframe当前document生成的节点才能被append到DOM中,其他insertBfore..同理