在javascript里 include javascript

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

前文:讨论 JDK6 包含javascript.....

江南白衣 12:06:41

一直有个疑问, a.js如何include b.js....js的封装,管理性比较弱噢.

buaawhl 12:07:24

我看到一个 jspackage的项目,

buaawhl 12:07:45

就是模仿java的import pakage ,管理js

江南白衣 12:08:12

那爽阿,现在项目里N多js文件,互相又不能include.....

url?

buaawhl 13:55:29

http://jspackaging.sourceforge.net/

buaawhl 13:55:50

http://jspackaging.sourceforge.net/examples/Examples.html

phalanger 14:11:46

原来是要用createElement,而不是document.write

江南白衣 14:12:34

谢谢,问题又解决掉一个:)

buaawhl 14:12:54

这个只能用在客户端?

江南白衣 14:13:07

main.js

JSLoad ("scripts/com/iskitz/js/packaging/examples/JSLoadExample.js");

if(typeof isJSLoaded != "undefined")

{

isJSLoaded();

}

JSLoadExample.js ::

function isJSLoaded()

{

alert("JSLoad was successful!");

}

江南白衣 14:13:12

so easy for use.

buaawhl 14:14:04

/*--------------------------------------------------------------------------+

| JSLoad (url // String - Scripts location (i.e. http://.../a.js)

| [, container] // Object - Window with script loading capability

| [, type] // String - Type of script (i.e. text/javascript)

| [, defer] // Boolean - Flag for delaying script processing

| [, language] // String - Language script is written in.

| [, title]) // String - Title for loaded script

|+--------------------------------------------------------------------------+

| Loads external JavaScripts; used by Import.

*--------------------------------------------------------------------------*/

function JSLoad(url, container, type, defer, language, title)

{

// verify / attain container

if(container == undefined || container == null) container = this;

// setup container

if(typeof container.write == "undefined")

if(typeof container.document != "undefined")

container = container.document;

else throw "Invalid container. Unable to load [" + url + "]";

// no type set

if(type == undefined || type == null)

{

type = '';

// no language so set default type

if(language == undefined || language == null)

{

language = undefined;

type = "text/javascript";

}

}

// set default language

if(language == undefined || language == null) language = "JavaScript";

// set title

if(title == undefined || title == null) title = '';

// set defer

if(defer == undefined) defer = false;

// build the script object

var script = container.createElement("script");

script.defer = defer;

script.language = language;

script.title = title;

script.type = type;

script.src = url;

// dynamically load the script via it's container

var head = container.getElementsByTagName("head")[0];

head.appendChild(script);

}

/*--------------------------------------------------------------------------+

| JSPackage (packageID // String - Fully-qualified package name

| [, owner]) // Object - Container

|+--------------------------------------------------------------------------+

| Createa a uniquely-named package to encapsulate JavaScript functionality.

*--------------------------------------------------------------------------*/

function JSPackage(packageID, owner)

{

var _package = (owner == undefined || owner == null) ? window : owner;

packageID = packageID.split('.');

// load / create the package

for(var i=0, j=packageID.length; i < j; i++)

if(typeof _package[packageID[i]] == "undefined")

_package = _package[packageID[i]] = {};

else

_package = _package[packageID[i]];

// attempt to complete any pending imports

CompleteImports(owner);

return _package;

}

/*--------------------------------------------------------------------------+

| JSPackageException (String packageID)

|+--------------------------------------------------------------------------+

| Used to catch JSPackage exceptions caused by invalid package ids.

*--------------------------------------------------------------------------*/

function JSPackageException(packageID)

{

this.name = _pathPacked + ".JSPackageException";

this.message = "Invalid package name [" + packageID + "]";

this.toString = function ()

{

return "[" + this.name + "] :: " + this.message;

};

}

buaawhl 14:15:05

JSLoad好像是依靠生成 <script import>来引入js file的

buaawhl 14:15:29

需要一个Container。应该是browser 里面的HTML DOM

phalanger 14:17:44

关键就在这里吧:

var script = container.createElement("script");

script.defer = defer;

script.language = language;

script.title = title;

script.type = type;

script.src = url;

// dynamically load the script via it's container

var head = container.getElementsByTagName("head")[0];

head.appendChild(script);

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航