----------------------HTML代码-------------------
<html>
<head>
<script src="addLoadEvent.js"></script>
<script src="test.js"></script>
</head>
<body>
<div>XXXXXX</div>
</body>
</html>
----------------addLoadEvent.js代码--------------
function addLoadEvent(func)
{
var oldload=window.onload;
if(typeof window.onload!='function')
{
window.onload=func;
}
else
{
window.onload=function()
{
oldload();
func();
}
}
}
---------------------test.js代码---------------------
function test()
{
var para=document.createElement("p");
var text=document.createTextNode("Hello World");
var bdy=getElementsByTagName("body")[];
para.appendChild(text);
bdy[0].appendChild(para);
}
addLoadEvent(test);
----------------------------------------------------------
啊呀呀,如果在addLoadEvent函数放到test,js中,就可以显示,但是如果把addLoadEvent单独写到addLoadEvent.js中刷新就什么也没有了,按照理论应该是可以这样的啊,小弟百思不得其解啊,各位帅哥美女大神们救救小白吧!!谢谢你们了~~
<html>
<head>
<script src="addLoadEvent.js"></script>
<script src="test.js"></script>
</head>
<body>
<div>XXXXXX</div>
</body>
</html>
----------------addLoadEvent.js代码--------------
function addLoadEvent(func)
{
var oldload=window.onload;
if(typeof window.onload!='function')
{
window.onload=func;
}
else
{
window.onload=function()
{
oldload();
func();
}
}
}
---------------------test.js代码---------------------
function test()
{
var para=document.createElement("p");
var text=document.createTextNode("Hello World");
var bdy=getElementsByTagName("body")[];
para.appendChild(text);
bdy[0].appendChild(para);
}
addLoadEvent(test);
----------------------------------------------------------
啊呀呀,如果在addLoadEvent函数放到test,js中,就可以显示,但是如果把addLoadEvent单独写到addLoadEvent.js中刷新就什么也没有了,按照理论应该是可以这样的啊,小弟百思不得其解啊,各位帅哥美女大神们救救小白吧!!谢谢你们了~~
解决方案 »
- extjs datefield设置不为空
- document.documentElement.clientwidth和document.body.clientWidth的区别
- ext4 grid中checkbox如何获取值或默认选中?
- 高校科研成果申报管理系统(jsp+sql)
- jquery如何给.line随机添加内容?
- 小弟最近转型javascript, 想知道各位大侠都用什么工具来开发和Debug呀
- layer对象load方法的问题
- 求助:在一个时间段中除去双休日的javascript代码
- 连续按键卡顿
- 使用VML遇到的一个问题
- 验证码输入对了还是说错,求解啊!
- 【关于JQuery设计思想之 方法函数化是什么意思啊?在线等···】
var para=document.createElement("p");
var text=document.createTextNode("Hello World");
var bdy=document.getElementsByTagName("body");
para.appendChild(text);
bdy[0].appendChild(para);
}
这个要改为:
var bdy=document.getElementsByTagName("body");
不是那个[]的问题,我把addLoadEvent()函数写在这里是可以的,但是把addLoadEvent函数单独写在一个js文件里就不行了
不是那个问题撒,改了还是没反应呀,主要是那个addLoadEvent函数,写在test.js里面就可以用,单独写在addLoadEvent.js里面就不可以了。。
我运行没有问题啊,你的js我都没有改动,调试了一下,你的问题就是
var bdy = document.getElementsByTagName("body");默认获取的就是数组形式的,所以不用加[],
再就是,你引入外部的js,页面上也要调用啊,所以我在页面加载的时候调用了你的test();其余的没有变动
最后页面显示的效果就是 在AAAAA下面显示了 Hello World<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script language="JavaScript" src="/otherJs/test.js" type="text/javascript"></script>
<!-- --> <script language="JavaScript" src="otherJs/addLoadEvent.js" type="text/javascript"></script>
<title>Insert title here</title>
<script type="text/javascript">
window.onload = function(){
test();
}
</script>
</head>
<body id="_body">
<div>AAAAAAAAAAAAAAA</div>
</body>
</html>test.js:function test(){
var para = document.createElement("p");
var text = document.createTextNode("Hello World");
var bdy = document.getElementsByTagName("body");
//alert(bdy[0].attributes.getNamedItem("id").nodeValue);
para.appendChild(text);
bdy[0].appendChild(para);
}
addLoadEvent(test);
addLoadEvent.js:function addLoadEvent(func) {
var oldload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
oldload();
func();
}
}
}
test();
}</script>那这样的话,test.js中的那个addLoadEvent(test);其实就没用啊,我的意思就是
<head>
<script src="addLoadEvent.js"></script>
<script src="test.js"></script>
</head>
这样为什么显示不出test.js中的那个"Hello World",而如果把addLoadEvent.js中的内容复制到test.js中,却又可以显示出了,test.js代码如下:
function addLoadEvent(func)
{
var oldload=window.onload;
if(typeof window.onload!='function')
{
window.onload=func;
}
else
{
window.onload=function()
{
oldload();
func();
}
}
}
function test(){
var para=document.createElement("p");
var text=document.createTextNode("Hello World");
var bdy=document.getElementsByTagName("body");
para.appendChild(text);
bdy[0].appendChild(para);
}
addLoadEvent(test);
这样是可以的,但是把addLoadEvent单独写在addLoadEvent.js里面,在这样调用
<head>
<script src="addLoadEvent.js"></script>
<script src="test.js"></script>
</head>
就不可以了,难道是写法不对吗?可是书上是这么写的啊,郁闷
function addLoadEvent(func){
var oldload=window.onload;
if(typeof window.onload!='function'){
window.onload=func;
}else{
window.onload=function(){
oldload();
func();
}
}
}
2:js2.js
function test(){
var para=document.createElement("p");
var text=document.createTextNode("Hello World");
var bdy=document.getElementsByTagName("body");
para.appendChild(text);
bdy[0].appendChild(para);
};
addLoadEvent(test);
3:在测试页面中加载js
<script type="text/javascript" src="js1.js"></script>
<script type="text/javascript" src="js2.js"></script>就这么一个问题。搞这么久。我测试一点问题都没有,你要是还有问题。就将上面的代码复制了去试去你自己的代码找问题也很简单。
1:保证两个js中的函数写正确了
2:在每个js结尾中加上一句:alert('test');看看你的js是否能正确执行再说