为什么我要将prototype.js与scriptaculous.js一起使用?主要原因是什么? 我什么时候需要这两个库?什么时候不需要?
答案 0 :(得分:7)
我已经使用了原型很长一段时间了,并且脚本很简单;我现在在一些项目上使用jQuery,在其他项目上使用Mootools,在其他项目上使用原型......
为什么我要使用JS Framework?
那么,有三个主要原因:
至于你应该使用哪个JS Framework,这是另一个问题 - 这完全取决于你^^
包括prototype.js和/或scriptaculous.js:
与其他JS框架一样,顺便说一句......
答案 1 :(得分:6)
Scriptaculous在内部使用Prototype。如果你使用Scriptaculous,你需要Prototype。
答案 2 :(得分:1)
scriptaculous.js文件是一个帮助文件,其中包含使用document.write调用的其余脚本。
从scriptaculous.js文件中编写的代码可以看出,通过调用require
函数,它包括构建器,效果等库。
var Scriptaculous = {
Version: '1.8.2',
require: function(libraryName) {
// inserting via DOM fails in Safari 2.0, so brute force approach
document.write('<script type="text/javascript" src="'+libraryName+'"><\/script>');
},
REQUIRED_PROTOTYPE: '1.6.0.3',
load: function() {
function convertVersionString(versionString) {
var v = versionString.replace(/_.*|\./g, '');
v = parseInt(v + '0'.times(4-v.length));
return versionString.indexOf('_') > -1 ? v-1 : v;
}
if((typeof Prototype=='undefined') ||
(typeof Element == 'undefined') ||
(typeof Element.Methods=='undefined') ||
(convertVersionString(Prototype.Version) <
convertVersionString(Scriptaculous.REQUIRED_PROTOTYPE)))
throw("script.aculo.us requires the Prototype JavaScript framework >= " +
Scriptaculous.REQUIRED_PROTOTYPE);
var js = /scriptaculous\.js(\?.*)?$/ig;
$$('head script[src]').findAll(function(s) {
return s.src.match(js);
}).each(function(s) {
var path = s.src.replace(js, ''),
includes = s.src.match(/\?.*load=([a-z,]*)/);
(includes ? includes[1] : 'builder,effects,drag-drop,controls,slider,sound').split(',').each(
function(include) { Scriptaculous.require(path+include+'.js') });
});
}
};
Scriptaculous.load();
而且,我们包含原型库,因为scriptaculous是一种基于原型库的附加组件。如果没有原型,你不能使用scriptaculous,因为它调用了原型库中可用的方法。
答案 3 :(得分:1)
Scriptaculous使用Prototype,因此如果您在网页上使用任何Scriptaculous效果,则需要包含它。
如果您看不到Scriptaculous的任何明显用途,可能您使用Prototype获得了其他javascript,它提供了一种用于编写简洁有效代码的跨平台实用程序层。检查它的一种快速方法是查找包含对$()
的调用的javascript