您的位置:程序门 -> web 开发 -> javascript



请教个动态生成javascript的问题


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


请教个动态生成javascript的问题
发表于:2007-08-05 17:13:37 楼主
想要在页面加载完的时候动态生成脚本代码,主要是一个按钮的onclick事件,从dhtml电子书上看到的例子是:  
<html>  
<script>  
function   insertscript(){  
var   shtml= " <input   type=button   onclick= "   +   "go2() "   +   "   value= 'click   me '> <br> ";  
var   sscript= " <script   defer> ";  
sscript   =   sscript   +   "function   go2(){   alert( 'hello   from   inserted   script. ')   } ";  
sscript   =   sscript   +   " </script "   +   "> ";  
scriptdiv.innerhtml   =   shtml   +   sscript;  
}  
</script>  
<body   onload= "insertscript(); ">  
<div   id= "scriptdiv "> </div>  
</body>  
</html>  
运行正常。  
我的代码如下,运行不行,事件没反映,请教各位啊,谢谢了:  
<html>  
<script>  
function   addevent()  
{

var   sscript= " <script   defer> ";  
sscript   =   sscript+  
"   var   o   =   document.getelementbyid( 'test ');o.onclick   =   go2; ";  
sscript   =   sscript+ "   function   go2(){   alert( 'hello   from   inserted   script. ');   }   ";  
sscript   =   sscript   +   "   </script "   +   "> ";  
var   scrdiv   =   document.getelementbyid( 'scriptdiv ');  
scrdiv.innerhtml   =   sscript;  
var   scrdiv   =   document.getelementbyid( 'scriptdiv ');  
scrdiv.innerhtml   =   sscript   ;  
}  
</script>  
<body   onload= "addevent(); ">  
<input   type= "button "   id= "test "   value= "test ">  
<div   id= "scriptdiv ">  
</div>  
</body>  
</html>
发表于:2007-08-05 19:07:101楼 得分:0
天啊,你看的是什么书,建议你买javascript高级程序设计,动态执行字符串的js代码用eval方法就可以了,但是不得已不要这样做,我想主要是代码清晰和可维护的原因
发表于:2007-08-06 08:24:412楼 得分:0
<html>  
<script>  
function   addevent()  
{

}  
function   go2(){
alert( 'hello   from   inserted   script. ');  
}
</script>  
<body   onload= "addevent(); ">  
<input   type= "button "   id= "test "   onclick= "go2() "   value= "test ">  
</body>  
</html>


body   onload的时候test还没有加载完毕,所以并不能直接操作
而且,eval()的确是可以动态执行字符串的最好办法
你的方法有时候由于script加载运行需要的时间问题,会造成错误


快速检索

最新资讯
热门点击