-
【神仙】 2007-12-27 13:27
叽歪提供了一套API接口供其他网站使用。不过他公布的API里的json接口
只有直接输出的。因为javascript的跨越问题,就只能通过代理来读取。不过既然叽歪给blog的javascript能读取,那一定还是有途径
的。看了下它输出的代码,就找到了一个未公开的参数:callback。这样就可以在js端动态获取最新的叽歪了。
代码:
<script type="text/javascript">
<!--
function jiwai_de_callback(status){
var text=status[0].text;
var m = text.match(/^(.+)\[[^]]+\]\s*$/);
if(m){
text = m[1];
}
alert(text);
}
//-->
</script>
<script
type="text/javascript" src='http://api.jiwai.de/statuses/user_timeline/用户名.json?count=1&
callback=jiwai_de_callback'></script>
把用户名替换成你的用户名或id即可。
-
【神仙】 2007-10-20 11:28
HTML提供了一个文件上传的控件,一般在web上上传文件全靠它。但是这玩意样式不好控制。在修改了文本框和按钮的样式后,这个文件域的样子就显得很突兀。虽然有一些结合CSS和JS的技巧可以模拟不同的样式,但是很麻烦,而且在浏览器兼容,以及稳定性方面都不太好。
好在Flash8开始提供了文件上传下载的功能,还由于有了更方便地与javascript交互的能力,完全可以不用Flash做界面(这样在页面修改的时候比较麻烦),而是把那个flash隐藏掉,用javascript和html来控制显示。此外,用flash上传还有一个很大的好处是可以显示上传进度,让用户在等待的时候感觉舒服一点。不过这种方法也有缺点,比如不能读取从服务器返回的结果,也不能通过post捎带其他的参数。
as和js代码都很简单,可以下载回去试试。
-
【神仙】 2006-12-31 16:26
imgs=document.getElementsByTagName('img');
for(i=0;i<imgs.length;i++){
imgs[i].display='block';
imgs[i].style.position='absolute';
}
t=0;
function foo(){
for(i=0;i<imgs.length;i++){
x=Math.sin((t+i*8)/180*Math.PI)*300+400;
y=Math.cos((t+i*6)/180*Math.PI)*300+300;
imgs[i].style.left=""+x+"px";
imgs[i].style.top=""+y+"px";
}
t+=1;
setTimeout('foo()', 20);
}
foo();
将以上代码用firebug之类的扩展运行一下,或者将如下代码复制到地址栏,就可以让网页上的图片动起来。
-
【神仙】 2006-01-17 20:17
javascript中,break, continue可以有一个标签,来方便的跳到几层之外。
outer:
for(i=0;i<5;i++){
for(j=0;j<5;j++){
if(j==2)
break outer;//
document.write(i+', '+j+'; ');
}
}
比较一下不加outer的情况。也试验一下continue。很有用吧
-
【神仙】 2006-01-14 13:59
javascrip中可以用function来定义一个类
function Base(){
this.foo=function(){
return 'base';
}
}
那怎么实现类的继承呢?
function Derive1(){
this.foo=function(){
return 'derive';
}
}
Derive1.prototype=new Base();
var obj1=new Derive1();
alert(obj1.foo());
还有另外一种方法:
function Derive2(){
this.parent=Base;
this.parent();
this.bar=function(){
return 'bar';
}
}
var obj2=new Derive2;
alert(obj2.foo());
用这种方法还能实现多继承。
function Base2(){
this.bar=function(){
return 'base2';
}
}
function Derive3(){
this.base1=Base;
this.base1();
this.base2=Base2;
this.Base2();
}
var obj3=new Derive3;
alert(obj3.foo());
alert(obj3.bar());
-
【神仙】 2006-01-10 13:08
var arr=[1,2,3,4,5];
delete(arr[2]);
alert(arr.length);
alert(arr);
看看结果,是不是有点意外呢?
var arr=[1,2,3,4,5];
arr.length=3;
alert(arr);
length还是可写的。这样能方便得截短一个数组。
-
【神仙】 2006-01-06 17:32
另一种创建对象的方法:
var obj={
a:10,
b:20,
c:function(){
alert('c');
}
};
alert(obj.a);
alert(obj.b);
obj.c();
这样似乎比
obj.a=10;
obj.b=20;
obj.c=function(){
alert('c');
}
更加清楚点。
不过,中间的分隔是逗号,不是分号。
-
【神仙】 2006-01-04 19:16
对象还可以当hash表用。
var obj;
obj.a=10;
obj.b=20;
alert(obj["a"]);
alert(obj["b"]);
对象也可以像数组一样用for in循环来遍历。
for(e in obj){
alert(e);
}
这样还让javascript有了动态访问对象成员的能力。对函数同样有用
obj.foo=function(){
alert('foo');
}
obj['foo']();
-
【神仙】 2005-10-06 13:28
jsuix——
一个用js来模拟unix的东西,完全js实现。用来学习不错,不用怕电脑给弄坏。
http://www.masswerk.at/jsuix/
我把它抓了下来,可以在本地玩了。
下载: http://syre.blogchina.com/inc/jsuix.rar