日期:2014-05-16 浏览次数:20345 次
var pure = pure || {}; pure.jquery = function( window, undefined ) { // jQuery 实现代码,略 // 在 window 对象上附加 jQuery 对象 window.jQuery = jQuery; };
var pure = pure || {}; pure.tmpl = function( window, undefined ) { // 其他代码,略 // 扩展 jQuery 对象(实例方法) jQuery.fn.extend({ tmpl: function( data, options, parentItem ) { ... }, template: function( name ) { ... }, domManip: function( args, table, callback, options ) { ... }); }); // 扩展 jQuery 对象(静态方法) jQuery.extend({ tmpl: function( tmpl, data, options, parentItem ) { ... }, template: function( name, tmpl ) { ... }, encode: function( text ) { ... } }); // 其他代码,略 };
pure.render = function(partial, file, func) { // 一些模拟函数重载的代码,略 // 创建用于解析 HTML 文件的 DOMParser var parser = new DOMParser(); // 解析 HTML 文件 parser.parse(file); // 构造 window 对象 var window = { // 从 parser 中获取 document document : parser.getDocument(), // 由于不能直接在 Elemnt 上附加数据(因为实际上 Element 是 Java 对象) // 因此我们用一个 HashMap 存放这些数据 //(Element作为 key,JavaScript 对象作为值) cache : new HashMap() }; // 依次调用 pure.jquery 和 pure.tmpl, // 从而在 window 对象上附加 jQuery 对象 pure.jquery(window); pure.tmpl(window); // 调用传进的函数,以 window.jQuery 作为参数 // 这个函数实际上将修改 window.document func(window.jQuery); // 返回结果:代码片段或完整的 HTML var doc = window.document.documentElement; return partial ? pure.html(doc.lastChild) : pure.outerHtml(doc, true); }