我的模块加载系统 v22
时隔差不多两个月,积累了许多改进,升级到v22。主要改进点如下: 进行瘦身,移除本地储存 IE6789的HTML5新标签支持列表,添加一个 m标签 loadJS内容方法,在动态插入script节点,发现最新的firefox Nightly做了些改动,如果head还没有解析完就插入节点,那么新script会触发onerror事件。补救措施,针对firefox使用html.insertBefore(node, head)。chrome不支持head.insertBefore(node, null),第二参数必须是节点,因此firefox外浏览器统一使用 head.insertBefore(node, head.firstChild)。 getCurrentScript方法进行增强,现在支持对chrome取正在解析的节点,详见源码。如此一来,除safari外,都能立即确认模块ID与script节点的对应关系。 修正parseURL转"mass.draggable"为url出错的BUG。 升级$.log,让它支持更古老的opera。 升级$.error,对异常进行包装,防止中文乱码。 现在详解一下getCurrentScript引入的新hack,利用e.stack截取正在解析的节点的src,从而得到节点。首先随便搞个错误,比如a.b.c()。在opera12的控制台下,我们通过try