风吟 FY.JS 1.0 轻量级 JavaScript 库源码解析

作者:半夏

时间:2026-10-24

浏览:535

本文介绍了由风吟开发的轻量级 JavaScript 库 FY.JS 1.0。该库旨在简化 DOM 操作、事件绑定及 AJAX 请求,压缩后仅 1.54KB。文章提供了项目源码、文档及完整示例的下载链接,并详细解析了库的核心功能实现,包括 ready、html、val、text、show、hide、bind、cookie 管理及 AJAX 封装,适合希望深入理解小型 JS 库原理的开发者参考。

文章目录

FY.JS 库概述与资源链接

作者近期开始学习 JavaScript,为了检验学习成果并寻求改进建议,开发了这款小型工具库。作者明确表示该库主要供个人使用,并不推荐大众直接部署于生产环境。如果读者认为代码存在瑕疵,欢迎指出不足之处及修改建议,作者视此为提升自身技术水平的机会,并非为了重复造轮子,而是通过实践提高编程能力。

欢迎探讨该库中哪些部分可以通过更精简的写法来进一步节省代码体积。

欢迎指出该库在浏览器兼容性方面存在的问题,或提供更完善的实现方式。

FY.JS 项目代码已托管于 Google Code 平台。

项目主页地址:http://code.google.com/p/fyjs/

文档下载地址:http://fyjs.googlecode.com/files/FY.JS.1.0.doc.zip(文档内含完整使用示例)。

压缩版文件下载地址:http://fyjs.googlecode.com/files/FY.1.0.js(大小 1.54KB)。

以下是经过格式化处理后的源代码内容。

FY.JS 1.0 核心源码解析

代码注释及头部信息如下:

/* 
* FY Library 1.0
* Copyright(c) 2010 FengYin
* Blog: http://fengyin.name/
* Date: 2010-3-12 16:10:01
* Update: http://code.google.com/p/fyjs/
*/ 
(function(_w,_d) {
var _FY,$,FY;
_w._FY=_w.$= function(i) {
return new FY(i)
}; 
FY = function(i) {
this.id = _d.getElementById(i)
}; 
FY.prototype = {
ready: function(f) {
var l = _w.onload;
if (typeof(l) == "function") {
_w.onload = function() {
l();
f()
} 
} else {
_w.onload = f
} 
}, 
html: function(c) {
var g = this.id,
r = g.innerHTML;
if (c) {
g.innerHTML = "";
g.innerHTML += c;
return this
} else {
return r
} 
}, 
val: function(c) {
var g = this.id,
r = g.value;
if (c) {
g.value = "";
g.value += c;
return this
} else {
return r
} 
}, 
text: function(c) {
var g = this.id,
r = g.innerText,
f = g.textContent;
if (c) {
r ? g.innerText = "": g.textContent = "";
r ? g.innerText += c: g.textContent += c;
return this
} else {
return r ? r: f
} 
}, 
show: function(f) {
this.id.style.display = "block";
f ? f() : null
}, 
hide: function(f) {
this.id.style.display = "none";
f ? f() : null
}, 
bind: function(t, f) {
var l = this.id,
e = l.attachEvent;
e ? l.attachEvent("on" + t,f):l.addEventListener(t,f,false)
}, 
setcookie: function(s) {
var p = new Date();
p.setTime(p.getTime() + (s.expires || 24) * 60 * 60 * 1000);
_d.cookie = s.name + "=" + escape(s.value) + ";expires=" + p.toGMTString() + ';path=/'
}, 
getcookie: function(n) {
var c = _d.cookie.match(new RegExp("(^| )" + n + "=([^;]*)(;|$)"));
return c ? unescape(c[2]) : null
}, 
ajax: function(s) {
var a = _w.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
with(a) {
open("POST", s.url, true);
setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
send(s.data);
onreadystatechange = function() {
if (readyState == 4 && status == 200) {
s.success(responseText)
} 
} 
} 
} 
} 
})(window,document);

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章