跨浏览器使用剪贴板

视觉·编程 No Comments »

转自:realazy(懒到死)

一般情况下,访问或设置剪贴板,IE 只需使用 window.clipboardDatagetDatasetData 方法即可。Mozilla 家族的浏览器(如 Firefox)则比较麻烦,不仅开发者需要写一沱代码,用户也需要主动配合(就是需要设置允许访问剪贴板)才可以(参考 Using the Clipboard),以致几不可用。至于 Opera 则根本不提供剪贴板,Safari 可以在 onpaste 等非Dom 事件中访问剪贴板(参考 Using the Pasteboard From JavaScript)。

中国特色的网站上有一个很中国特色的应用就是,在一个输入框 focus 时自动帮你把内容复制到了剪贴板中。老实说访问剪贴板是个不安全的操作,因此即使是 IE, Windows 在后来的升级中都加入是否允许访问剪贴板的提醒。如果能够做到跨浏览器的“邪恶地悄无声息”地实现中国特色的剪贴板应用,确实是个不小的挑战。
Read the rest of this entry »

Google首页动画效果

视觉·编程 No Comments »

来源:JavaEye

相关演示下载

原本以为google首页的动画是动画图片,后来发现是用js写的。
好奇,就仿着google首页的动画用jquery试着写了个。
Google首页动画效果01
难点就在切图和定位上。
Read the rest of this entry »

Javascript 相对时间

视觉·编程 No Comments »

By galeki

因为相对时间是随时变化的,所以如果在页面里面直接生成相对时间的文本,那么就没法缓存成静态文件,不过用 js 可以解决这个问题。

首先,在页面里面还是用 rails 生成一般的时间,这样即使关掉了 js,也可以显示正常的时间。并套个 span:

<span class="relative_time">
 <%= @post.created_at %>
</span>

然后就是 js 的事情了,找出这些 span,并且算出相对时间替换进去:

function show_relative_time(local){
    var times = $$('span.relative_time');
    var now = new Date();
    for(i=0;i<times.length;i++){
        var time = times[i];
        var t = new Date(time.innerHTML);
        var diff = now - t;
        time.innerHTML = relative_time_text(Math.floor(Math.abs(diff/1000/60)), local);
    }
}

Read the rest of this entry »

终于明白了Blogger里不能使用Lightbox的原因了

生活·琐事 No Comments »

其实原因很简单,并不是代码的事,也不是Blogger不支持,而是外链相册的问题。
刚刚试了一下Flickr,刚开始发现也不行,只出来Lightbox的效果而没有图像,于是把a href后面改成大图,img src后面改成小图,然后刷新竟然成功了。原来如此,只要指向的是图像就可以了吧,所以Flickr是不能用了,因为它要求必须链接回原来的页面,所以放弃这个相册。

赶快回到Blogger上传的Picasa来,发现两个位置都是图像啊,哪里出问题了呢?
Read the rest of this entry »

更改模板的痛苦

生活·琐事 1 Comment »

blogger的模板自由度的确是太大了,每一次更换模板的时候都需要把以前做的一些hack移植过来,而且还可能出现不兼容的情况,这不,现在下面分页显示页数的hack又不能加进来了,以前都不知道怎么加上的,真是头大啊。

另外,这个新模板做了css和js优化,可就算是这样,现在的模板还是要比原来的大一点点,原因主要是在背景图上了,自己是在是很喜欢苹果,可能是因为没有的关系吧,自己觉得这个很舒服了,呵呵。
Read the rest of this entry »

JavaScript中的事件和DOM元素的详解

视觉·编程 No Comments »

在语言的学习中,“事件”都是一个比较难理解,但是又是一个很重要的概念。javascript中的事件处理也是一样,正因为有了事件处理,才会出现 Ajax拖动的效果。本文就讨论一下JavaScript中的事件处理,读过之后,您就会知道,很多Ajax框架实现拖动效果的原理了。

一、 IE Event对象
(一)IE Event对象的主要属性和方法

在IE中有一个专门负责事件处理的对象Event,这个对象负责对事件的处理,含有很多的属性和方法,通过这些方法和属性的调用,就能完成很多的事件处理。

type:事件的类型,就是HTML标签属性中,没有“on”前缀之后的字符串,例如“Click”就代表单击事件。
srcElement:事件源,就是发生事件的元素。
button:声明了被按下的鼠标键,是一个整数。1代表鼠标左键,2代表鼠标右键,4代表鼠标的中间键,如果按下了多个鼠标键,就把这些值加在一起,所以3就代表左右键同时按下。
clientX/clientY:是指事件发生的时候,鼠标的横、纵坐标,返回的是整数,它们的值是相对于包容窗口的左上角生成的。
offsetX/offsetY:鼠标指针相对于源元素的位置,可以确定单击Image对象的哪个象素。
altKey,ctrlKey,shiftKey:顾名思义,这些属性是指鼠标事件发生的时候,是否同时按住了Alt、Ctrl或者Shift键,返回的是一个布尔值。
keyCode:返回keydown和keyup事件发生的时候,按键的代码以及keypress事件的Unicode字符。
fromElement、toElement前者是指代mouseover事件移动过的文档元素,后者指代mouseout事件中鼠标移动到的文档元素。
cancelBubble:一个布尔属性,把它设置为true的时候,将停止事件进一步起泡到包容层次的元素。
returnValue:一个布尔值属性,设置为false的时候可以组织浏览器执行默认的事件动作,相当于<a href=”#” onclick=”ProcessMethod();return false;” />。
attachEvent() 和detachEvent()方法:为制定DOM对象事件类型注册多个事件处理函数的方法,它们有两个参数,第一个是事件类型,第二个是事件处理函数。在attachEvent()事件执行的时候,this关键字指向的是window对象,而不是发生事件的那个元素。
Read the rest of this entry »

IE浏览器中一个值得关注的JS问题

视觉·编程 No Comments »

  刚才在调试js,在mozilla中一切正常,但是在ie中却报告有configuration变量没有找到。以下是代码:

var Environment = new (function Environment$ctor()
{
  this.processCommandLine = function Env$procCmdLine(q)
  {
      var cmd = configuration    {}; // <---- 就是这一行报告错误
      // 其他代码省略
  }
};

Read the rest of this entry »

编写高级JavaScript应用代码

视觉·编程 No Comments »

来源:Java学习站

1、创建高级对象

使用构造函数来创建对象

构造函数是一个函数,调用它来例示并初始化特殊类型的对象。可以使用 new 关键字来调用一个构造函数。下面给出了使用构造函数的新示例。

var myObject = new Object(); // 创建没有属性的通用对象。
var myBirthday = new Date(1961, 5, 10); // 创建一个 Date 对象。
var myCar = new Car(); // 创建一个用户定义的对象,并初始化其属性。

通过构造函数将一个参数作为特定的 this 关键字的值传递给新创建的空对象。然后构造函数负责为新对象执行适应的初始化(创建属性并给出其初始值)。完成后,构造函数返回它所构造的对象的一个参数。
Read the rest of this entry »

Q网志 , powered by 七十二松 (72pines). WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS 登录