1. readyState的值是一个整数而不是字符串,4表示complete。楼主看文档不仔细。2. 学会小段小段的写代码,学会为每个小段代码写测试。不要等到代码堆积起来之后才想调试。特别对于js这样的动态脚本语言,在没有调试器的情况下,是极难定位bug的。3. window.document.appendChild(aScript) ; 不是很好,script元素应被插入到合适的位置,而不是像弃婴一样到处append。script元素最好被立即附加。如下
<script type="text/ecmascript">
var scripts = document.getElementsByTagName('script');
var currentScript = scripts[scripts.length - 1];
currentScript.parentNode.appendChild(newScript);
</script>4. 模拟import/package机制,你的代码还很稚嫩。建议你使用一些开源的项目,例如JSAN、JSPKG等(请参考http://blog.staffonly.org/hax/view.php?id=1001)。我本人也开发了一个import机制的项目,在春节后会正式发布到sourceforge.net上。
<script type="text/ecmascript">
var scripts = document.getElementsByTagName('script');
var currentScript = scripts[scripts.length - 1];
currentScript.parentNode.appendChild(newScript);
</script>4. 模拟import/package机制,你的代码还很稚嫩。建议你使用一些开源的项目,例如JSAN、JSPKG等(请参考http://blog.staffonly.org/hax/view.php?id=1001)。我本人也开发了一个import机制的项目,在春节后会正式发布到sourceforge.net上。
解决方案 »
- 请求各位高手帮助解决一个在使用Session数组的问题,急需各位帮助
- ■■高分求教:js中怎么得到td中的input输入域的名称呢?■■
- 不提交页面,客户端保存数据的问题!顶者有分!
- 请教,利用JS将Select的Value传递给某个input的问题
- 判断选择了单选纽后,表单可以提交,不知道为什么下面都弹出提示对话框,不管选择了没有
- 向各位高手请教一个关于用JavaScript只能输入用中文,英文和数字的判断,急呀
- 急一个简单的打开窗口的问题
- 奇了怪了:子画面怎么就死活不能关闭了呢?
- 好久没散分了:IQ大挑战,闲时可以玩玩Dweep练练脑
- 在线等待,如何在浮动图片上加入动作!
- 关于<input>框的赋值
- 用js如何打开文件对话框时显示指定的文件夹,散分啦
Retrieves a value that indicates the current state of the object.SyntaxHTML N/A
Scripting [ sState = ] object.readyState Possible ValuessState String that receives one of the following values.uninitialized Object is not initialized with data.
loading Object is loading its data.
loaded Object has finished loading its data.
interactive User can interact with the object even though it is not fully loaded.
complete Object is completely initialized.
The property is read-only. The property has no default value.而对于OBJECT对象,他的值才是0-4
(注意:在write时"</script>"必须成两个以上的子串,不然会出错)//导入脚本
function $importJS(path){
document.write("<" + "script language=javascript src=\"" + path + "\"></" + "script>");
}//导入样式表
function $importCSS(path){
document.write("<" + "link href=\"" + path + "\"rel=stylesheet type=text/css>");
}
先用HttpRequest对象把JS文件读进来,再用eval去执行脚本中的代码
那么在using之后的代码运行时,如果要使用调用的库,而脚本又还没有载入,就会出错的.
所有必需使用一种同步的方式,就像我上面说的用HttpRequest.
1、不加defer,我的html就无法运行,因为主程序要在using的程序以后才可以启动,不然就没办法
2、uses和import的区别其实就是delphi和java的区别,delphi是以文件为基础,不同dcu文件之间的引用就需要uses;而java以包为基础,不同包之间的调用才需要import。js其实和delphi类似,但是很多packager loader喜欢以java为蓝本实现。
3、document.write("<script></script>")问题是我弄错了,对于用src include进来的js文件,直接写是没关系的,但是对于html里面内嵌的js脚步,这样写是错误的!但是也完全不必要用"<sc"+"ript>"这样的方式,可以用document.write("<\script><\/script>")来实现
dom载入是有延时,但是我如何来写script的onreadystatechange那?
我载入的script不定,当前的script不见得就是最后的script,这个怎样才能判断?
HttpRequest应该也是用的XmlHttp来实现的吧?这样的确可以解决一部分问题但是你载入的js文件应该放在哪里?是不是说必须建一个namespace来放它?这个我还在看 hax(海曦)提到的几个源代码另外,这样子的话,包含中文的js文件就必须用utf-8编码,不然就无法读到中文,有没有什么其他办法?
>但是你载入的js文件应该放在哪里?
这个用<script>应该也有这个问题吧.我的程序里面用了两种
一种是跟JSVM一样,你可以参考它的,js文件是放在JSVM里.(以前我看JSVM时,是这样的,现在不知道了)
还有一种是使用绝对路径或相对于当前文件的路径,这个的话js文件放在哪都可以调用到.
但我的不像JAVA或C#里面的import和using机制,我是直接调用js文件路径.
如果你想要像
using("xxx") ;//使用xxx.js
这样写的话,那就看看JSVM吧.>另外,这样子的话,包含中文的js文件就必须用utf-8编码,不然就无法读到中文,有没有什么其他办法?
可能是我的工作原因吧.我工作上使用统一是utf-8所以,我没有认真想过这个问题呵呵,不好意思.
如:
<?xml version="1.0" encoding="GB2312"?>
<script>
alert("你好!");
</script>
这样做就有点像bindows了.
http://hax.zavax.com/svn/esant/trunk/src/important.es (个人机器,不一定一直开)春节后我会以LGPL方式发表。
使用方式如下:网页中加入
<script src="important.es" type="text/ecmascript"></script>
<script src="my.es" type="text/ecmascript"></script>
<script>$import (esx.oop);
$import (net.sf.sarissa);....</script>其中my.es是集中的包定义处,代码类似:
$package.register('esx.oop', 'oo.js');
$package.register('esx.method', 'method.js');
$package.register('esx.async.future', 'future.js');
$package.register('net.sf.sarissa', 'sarissa/sarissa.js#Sarissa');
$import方法:
$import (packageIdentity)packageIdentity: 包的标识符。$package.register方法:
$package.register(packageName, scriptLoader)packageName: 包名(字符串)
scriptLoader: 脚本装载方式(函数)或者脚本的uri引用(字符串)
当然,这是楼主所谓类似java的import机制。不过就我看到的多数语言(java,c#,python,ruby...)的package/module机制都是类似java的,即基于抽象命名的,而不是基于文件系统的。当然两者可以有对应(如java规定包结构和目录结构的对应)。delphi我没用过所以不了解。