字符串动态构建js函数问题 在firefox下就可以用script = doc.createElement("script"); script.innerHTML="function test(a,b,c){alert('...');}";head.appendChild(script);的方法.但是在IE下行不通。麻烦各位考虑下谢谢。。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 var aa= "function test(a,b,c){alert('...');}" eval(aa); test(); 关键是事先我是不知道函数名是test..这个函数是我从其他地方用responseText得到的..页面也是动态写上去的.. <script> var aa var fname = "ttt" function createfun(){ aa = "function "+fname+"(a,b,c){alert('...');}" } createfun() eval(aa); eval(fname+"()"); </script>你可以修改fname的值 多谢,好象页面的加载做到了..但是页面div..onclick="test();"的时候,还是提示找不到函数..不过还是谢谢,总算有点进展了. 比如我刚刚eval(fname+"()");的时候页面是弹出提示框..但是我想要的是..当我点页面div元素的时候..才去调用该函数.. div写成这样:<div onclick="eval(fname+'()');">sdfjioweow</div> 这样跟你说吧页面的div我也是responseText得到的.是body.innerHTML="";的方法加载进去的..意思很简单就是把另外一个页面的js,css,html,全部动态加载到当前的页面下.现在只有js的加载问题了.也就是说事先,我不知道页面元素.. loadHtml=function(textDoc) { var remoteScripts=[]; var head = document.getElementsByTagName("head")[0]; var htmlBody=""; var body=""; var styles=[]; var links=[];var match=[]; while(match){ match = textDoc.match(/<script([^>]*)>([\s\S]*?)<\/script>/i); if(!match){ break; } if(match[1]){ attr = match[1].match(/src=(['"]?)([^"']*)\1/i); if(attr){ var script=document.createElement("script"); script.type="text/javascript"; script.src=attr[2]; head.appendChild(script); } } if(match[2]){ if(navigator.appName.indexOf("Microsoft")==-1){ var script=document.createElement("script"); script.type="text/javascript"; script.innerHTML=match[2]; head.appendChild(script); }else{ //在IE下的方法 } } textDoc = textDoc.replace(/<script[^>]*>[\s\S]*?<\/script>/i, ""); }//---加载页面var otherDiv=document.createElement("div")var matches = textDoc.match(/<body[^>]*>([\s\S]*?)<\/body>/im); if(matches) { body = matches[1]; } otherDiv.innerHTML+=body; htmlDiv.appendChild(otherDiv);} 请解释一下 滚动效果的原理。 javaScript 动态取值问题? js运算符可以是变量吗 各位大哥,请问一下,如何在一个popup中的textarea中输入值呢??谢谢, 分不多了,大家帮帮忙!看看代码入口在哪里???????? 大虾看看这个程式有什么错误呀?调了半天啦!! 请推荐一本js最好地入门书(网上的)! 如何使下拉列表可以写进去新值? A页面中包含IFRAME页面为B,A提交到C.ASP,在C中如何读取B中的TEXT等字段??? 泛微e-cology8 明细表文本赋值主表文本字段 关于js正则表达式问题 取出 下拉框的值???? 很急..请朋友帮看看
eval(aa);
test();
var aa
var fname = "ttt"
function createfun(){
aa = "function "+fname+"(a,b,c){alert('...');}"
}
createfun()
eval(aa);
eval(fname+"()");
</script>你可以修改fname的值
函数..不过还是谢谢,总算有点进展了.
<div onclick="eval(fname+'()');">sdfjioweow</div>
加载进去的..意思很简单就是把另外一个页面的js,css,html,全部动态加载到当前的
页面下.现在只有js的加载问题了.也就是说事先,我不知道页面元素..
var remoteScripts=[];
var head = document.getElementsByTagName("head")[0];
var htmlBody="";
var body="";
var styles=[]; var links=[];var match=[];
while(match){
match = textDoc.match(/<script([^>]*)>([\s\S]*?)<\/script>/i);
if(!match){ break; }
if(match[1]){
attr = match[1].match(/src=(['"]?)([^"']*)\1/i);
if(attr){
var script=document.createElement("script");
script.type="text/javascript";
script.src=attr[2];
head.appendChild(script);
}
}
if(match[2]){
if(navigator.appName.indexOf("Microsoft")==-1){
var script=document.createElement("script");
script.type="text/javascript";
script.innerHTML=match[2];
head.appendChild(script);
}else{
//在IE下的方法
} }
textDoc = textDoc.replace(/<script[^>]*>[\s\S]*?<\/script>/i, "");
}
//---加载页面
var otherDiv=document.createElement("div")
var matches = textDoc.match(/<body[^>]*>([\s\S]*?)<\/body>/im);
if(matches) { body = matches[1]; }
otherDiv.innerHTML+=body;
htmlDiv.appendChild(otherDiv);
}