那就把里面的JS和HTML分离出来好了,下面的代码在IE6.0下测试过没问题。
<html>
<head></head>
<body>
<span id="t1"></span>
<script type="text/javascript">
<!--
cache_html='<script type="text/javascript">function a(){alert(4);}</script><span onclick="a()">a</span>';var js = getjs(cache_html);
var html = cache_html.replace(/<script[^>]*>.*?<\/script>/gi, "");document.write(js);
document.getElementById("t1").innerHTML=html;function getjs(str)
{
var sRet = "";
var js = str.match(/<script[^>]*>.*?<\/script>/gi);
for( var i=0; i<js.length; i++ )
{
sRet += js[i];
}
return sRet;
}//-->
</script>
</body></html>
<html>
<head></head>
<body>
<span id="t1"></span>
<script type="text/javascript">
<!--
cache_html='<script type="text/javascript">function a(){alert(4);}</script><span onclick="a()">a</span>';var js = getjs(cache_html);
var html = cache_html.replace(/<script[^>]*>.*?<\/script>/gi, "");document.write(js);
document.getElementById("t1").innerHTML=html;function getjs(str)
{
var sRet = "";
var js = str.match(/<script[^>]*>.*?<\/script>/gi);
for( var i=0; i<js.length; i++ )
{
sRet += js[i];
}
return sRet;
}//-->
</script>
</body></html>
<head></head>
<body>
<span id="t1"></span>
<script type="text/javascript">
<!--
cache_html='<scr'
+'ipt type="text/javascr'
+'ipt">function a(){alert(4);}</scr'
+'ipt><span onclick="a()">a</span>';
document.getElementById("t1").innerHTML=cache_html;
//-->
</script>
</body></html>
你的这种方法只有用 document.write才能实现。如下面的代码就不能用了。我不是一开始就加载的,如果用document.wirte,就会冲掉页面。
<html>
<head>
<title>document</title>
</head>
<body>
<span id="t1"></span>
<span id="t2" onclick="a()">a</span>
<script type="text/javascript">
<!--
document.getElementById("t1").innerHTML=getjs('<script type="text/javascript">function a(){alert(4);}</script><span>test</span>');
function getjs(str)
{
var sRet = "";
var js = str.match(/<script[^>]*>.*?<\/script>/gi);
for( var i=0; i<js.length; i++ )
{
sRet += js[i];
}
return sRet;
}
//-->
</script>
</body></html>to myy() :
谢谢了,不过我要的不是这种实现方法。
<head></head>
<body>
<span id="t1"></span>
<BR><span id="t2">Orignal</span>
<BR><button onclick="insert()">插入HTML</button>
<script type="text/javascript">
<!--
cache_html='<script type="text/javascript">function a(){alert(4);}</script><span onclick="a()">test</span>';function insert()
{
var js = "<html>" + document.documentElement.innerHTML + getjs(cache_html) + "</html>";
var html = cache_html.replace(/<script[^>]*>.*?<\/script>/gi, ""); document.getElementById("t1").innerHTML=html; document.open("text/html", "replace");
document.write(js);
}function getjs(str)
{
var sRet = "";
var js = str.match(/<script[^>]*>.*?<\/script>/gi);
for( var i=0; i<js.length; i++ )
{
sRet += js[i];
}
return sRet;
}//-->
</script>
</body></html>