开源,自由,平等,共享,包容,沟通

2008年9月19日星期五

标准的 XHTML 1.0 strict 网页代码模板(UTF-8)

 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title></title>
<link rel="stylesheet" type="text/css" href="" />
<script type="text/javascript" src=""></script>
</head><body>

</body></html>
 

2008年9月18日星期四

window.onload 同时触发多个函数

 
当页面加载完毕后会触发一个 onload 事件,假设此时想执行一个函数 aFunction,只需要将其绑定到这个事件上就可以了:

window.onload=aFunction;

但当要触发两个函数 aFunction 和 bFunction 时:

window.onload=aFunction;
window.onload=bFunction;

以上代码只能触发后者,前者会被后者取代。

解决这个问题时可以通过编写一个匿名函数来解决:

window.onload=function(){
aFunction();
bFunction();
}

这样,无论在页面加载时需要触发多少函数,都可以在其匿名函数里指定,并且可以安排触发顺序。
 

通过 FTP 协议的 URL 直接登录 FTP 服务器

 
拥有帐号和密码,我们通常使用 FTP 客户端软件(FlashFXP、CuteFTP 等)登录 FTP 服务器,以取得相关的资源。
或者直接在 Web 浏览器上输入 FTP 服务器地址,再输入帐号和密码登录。

当然,为了更简单,我们尝试使用 FTP 协议的 URL 直接登录服务器,格式如下:

ftp://用户名:密码@服务器:端口

例如:ftp://testuser:testpwd@127.0.0.1:21。
 

让 <a /> 标签的外部链接通过 W3C XHTML 1.0 Strict 标准验证

 
通常情况下,我们要打开一个外部链接(新开窗口),往往使用如下代码:

<a href="" target="_blank"></a>

然而把它放在 W3C XHTML 1.0 Strict 标准下却发现无法通过验证。

原来,在严格的 W3C DTD 下,<a /> 标签的 target 属性是不被官方所推荐的,使用 Strict 模式将视 target 属性无效,我们只有利用 JavaScript 来变通实现。
真不知道 W3C 专家们是怎么想的,或许“易用性、友好性”成为他们主张的关键,因为老外觉得不经过用户同意,没有明确提示就打开一个新窗口是不礼貌的。

我们姑且不管这样的概念是否真正合理,先看看解决办法:

  rel 属性:规定当前文档与目标 URL 之间的关系,即用来说明链接和包含此链接页面的关系,以及链接打开的目标。
  我们将使用 rel="external" 作为 <a /> 标签的特性,那么可以得到如下代码:

<a href="" rel="external"></a>

  这是符合 W3C XHTML 1.0 Strict 标准的方法,当然还需要以个 JavaScript 方法作配合:

function external(){
var anchors=document.getElementsByTagName("a");
for(var i=0;i<anchors.length;i++){
if(anchors[i].getAttribute("rel")=="external"){anchors[i].target="_blank";}
}
}

  在页面下载完成时自动加载:

window.onload=function(){
external();
};

可以把以上两段 JavaScript 代码存储在 external.js 文件里,然后通过外部链接方法调用:

<script type="text/javascript" src="external.js"></script>
 

让 <pre /> 标签中的内容自动换行并符合 W3C 标准(多浏览器支持)

 
默认情况下,<pre /> 标签中的内容若超出范围不会自动换行,这样无论在显示或打印都会出现麻烦。

下面提供符合 W3C 标准并支持多浏览器的 CSS 样式代码:

pre{
white-space:pre-wrap; /* css-3 */
white-space:-moz-pre-wrap; /* Mozilla, since 1999 */
white-space:-pre-wrap; /* Opera 4-6 */
white-space:-o-pre-wrap; /* Opera 7 */
word-wrap:break-word; /* Internet Explorer 5.5+ */
}


更多内容:http://www.w3.org/TR/css3-text/#white-space。