想要在页面加载完的时候动态生成脚本代码,主要是一个按钮的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>
<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>
<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加载运行需要的时间问题,会造成错误