站内搜索: 请输入搜索关键词

当前页面: 开发资料首页Javascript 专题在javascript里 include javascript

在javascript里 include javascript

摘要: 在javascript里 include javascript
<textarea readonly style="border:none;font-family:Courier New;line-height:150%;width:760px;overflow-y:visible">

前文:讨论 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);


</textarea>
↑返回目录
前一篇: 漫谈Javascript
后一篇: JAVASCRIPT 滚动字幕(支持添加多个)