标签为‘技术’的日志

JSON跨域调用与动态脚本加载

下面是在anyjs中JSON跨域的实现(JSONP),原理很简单,动态生成script标签,没有使用到callback(可支持),需要与后台协调保持对象一致,anyjs默认采用JSONP。

01 anyjs.gjsonp=function(url,callbackfn){
02     var h=document.getElementsByTagName(‘head’)[0];
03     var s=anyjs.create(‘script’);
04     anyjs(s).set(‘type’, ‘text/javascript’).set(‘src’, url);
05     anyjs(h).apd(s);
06     if(anyjs.ie){ //IE6+
07             s.onreadystatechange = function () {
08             if (s.readyState == ‘loaded’ || s.readyState == ‘complete’) {
09                 (callbackfn)(JSONP);
10                 JSONP=null;
11                anyjs(s).rmv();
12             }
13         }
14     } else {//GECKOS、WEBKIT、ETC..
15             s.onload = function() {
16             (callbackfn)(JSONP);
17             JSONP=null;
18             anyjs(s).rmv();
19         }
20     }
21     return false;
22 };//end

使用anyjs跨域调用示例:

01 //JSONP跨域测试开始
02 $(“#jsonp”).click(function(){
03 y=$.create(“div”);
04 $(y).set(“id”,“bglay”).set(“class”,“bglay”);
05 $(“body”).ist(y);
06 x=$.create(“div”);
07 $(x).set(“id”,“ajax”);
08 $(x).set(“class”,“ajax”);
09 $(“body”).ist(x);
10 $(“#ajax”).show();
11 $.gjsonp(“http://www.focusstudio.org/data.php?type=jsonp”,function(data){
12 var arr=[],str=“”;
13 for(var i=0;i<data.length;i++){
14
15 arr.push(data[i].a);
16 str+=data[i].b+“|”;
17 }
18 $(“#ajax”).h(arr.join(“‘”)+str);
19 });
20
21 $(“#ajax”).click(function(){$(“div.bglay”,“#ajax”).fout();$(“div.bglay”,“#ajax”).rmv();});
22 });
23 //跨域jsonp测试结束

后台相关代码:

1 <?php
2 header(“Content-Type:application/x-javascript; charset=utf-8″);
3 $callback = isset($_GET['callback']) ? $_GET['callback'] : ‘JSONP’;
4 $json=array(array(‘a’=>‘enimo1jsonp’,‘b’=>‘test1jsonp’),array(‘a’=>‘enimo2′,‘b’=>‘test2jsonp’));
5 echo ‘var ‘.$callback.‘=’.json_encode($json);
6 ?>

到这里,要实现动态加载js脚本,我想大家应该不言自明了吧。

Tags : , , ,

用anyjs实现简单的LightBox效果

anyjs是自己正在筹备的一个轻量级js库,主要为了提高平时开发效率,目前只封装了一些开发过程中常用到的事件方法以及DOM操作,当然bug还很多,希望高手指教,不胜感激,SVN地址:http://anyjs.googlecode.com/svn/trunk/
下面是在校毕业生专题中实现lightbox效果的代码,兼容目前主流的FF/Chrome/IE6+,效果简单基础,如果看起来比较乱,希望见谅。
01 <script>
02 window.onload=function(){
03 $(“img”).each(function(i){
04 $(i).click(function(){
05
06 /* y=$.create(“div”);
07 $(y).set(“id”,”bglay”).set(“class”,”bglay”);
08 $(“body”).ist(y);
09 x=$.create(“div”);
10 $(x).set(“id”,”ajax”);
11 $(x).set(“class”,”ajax”); */
12
13 $(“#bglay”).show();
14 $(“#ajax”).show().h(“<img src=’images/load.gif’ /> 正在加载….”);
15 var anyimg=new Image();
16 anyimg.src=$(i).get(“src”);
17 anyimg.onload=function(){$(“#ajax”).h(“<img src=’”+anyimg.src+“‘ alt=’点击关闭’ width=’500′  border=’0′/>”);}
18
19 return false;
20 });
21 });
22
23 $(“#ajax”).click(function(){$(“#bglay”,“#ajax”).hide();});
24 }
25 </script>
26 <style>
27 *{margin:0;padding:0;}
28 #ajax{
29 position:fixed;
30 _position:absolute;
31 left:50%;
32 top:100px;
33 _top:expression(document.documentElement.scrollTop+100+“px”);
34 width:500px;
35 margin-left:-250px;
36 border:2px solid #ccc;
37 color:#696969;
38 z-index:99;
39 background-color:#fff;
40 display:none;
41 }
42 #bglay{
43 position:fixed;
44 _position:absolute;/*ie6*/
45 z-index:2;
46 overflow:hidden;
47 top:0px;
48 left:0px;
49 width:100%;
50 height:100%;
51 background:#000;
52 opacity:0.7;
53 filter: Alpha(opacity=70);
54 display:none;
55 }
56 </style>
 
有时间再陆续将几个常用web2.0效果实现,放在这当做学习笔记吧。

Tags : , ,

IxEdit-简化Web交互开发的JavaScript库

IxEdit是一个为简化Web交互开发而设计的一个js库,基于jQuery&UI库,用它可以快速敏捷的实现很多时下比较主流的交互效果,操作简便。

在使用它之前确认你的浏览器已经安装Google Gear,或者使用了Google Chrome作为默认浏览器。IxEdit目前放出的是beta版,使用上基本问题不大,生成的代码足够简洁,同时你还可以自行对代码进行优化。

想了解更多详细信息:

1.官方的用户手册 UserGuide(英文):

2.阿一前辈的视频教程(推荐)。

Tags : , ,

WP页面加入自定义侧边栏

        在前面一篇文章中简要介绍了如何创建wordpress自定义页面,在此,介绍一下在自定义页面中加入个性化的侧边栏(sidebar.php),顶部(header.php)及底部(footer.php)。关于如何创建自定义页面,可参考此文:自定义WordPress的页面模板
下面以侧边栏为例:

我们知道在page.php(页面模板),single.php(文章模板),调用头部侧边底部的方法分别是:get_header(),get_sidebar(),get_footer(),在get_sidebar()方法中,有一段代码:

function get_sidebar( $name = null ) {
do_action( ‘get_sidebar’, $name );
$templates = array();
if ( isset($name) )
$templates[] = “sidebar-{$name}.php”;
$templates[] = “sidebar.php”;

……

所以,我们只需要建一个以sidebar.php为母版的个性化sidebar-{YourName}.php文件,在页面模板的调用中将默认get_sidebar()修改为get_sidebar(“YourName”)即可。

同理你也可以按此方法,自定义自己的header.php,footer.php 。
本站的一个搜索页面示例:点击浏览.

Tags : , , ,

换了个首页

放弃了背景图,以黑为背景色,品红为辅助色,风格奉行一贯简约至上。

          网页预览,字体采用倍受青睐的Verdana,三栏布局,中间线分割线置于屏宽0.618比率位置,最新文章的调用用feed to JavaScript,速度体验都比以前好。

旧版:

旧版的倒计时的确让人有压迫感。

Tags : , , ,

Page 1 of 3123