字符串动态构建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);} 关于JS 模仿接口 表单中<input type="submit" id="a" />在js中绑定onclick事件是先提交还是先处理事件 请问table在网页中生成完成用什么事件能够得到? javascript精深探讨群广纳精英 为什么这链接放iframe访问不了? 如何判断一个字符串是全英文还是全中文的? 请教一个css的filter的写法? 求助将字符类型转化成时间类型的怎么写啊?急!! 提交页面之前的检测,放在form的onSubmit事件中,检测不通过,如何让它不提交呢? js 面向对象的问题 关于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);
}