离成功只差一步!!!最后一个问题 执行的时候没有把那个js完全载完,加个alert就相当于延时了,把要加载的那个js改改看另外,我刚才试过,新加载的js是在本代码段后面,若要取里面的变量就会出错 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 试试script.defer= true; 我有了个笨办法在下面再加一个空的rs就行了<script language='javascript' src='empty.js'></script> 可以试试孟子的方法,给动态生成的Script加上defer属性。 不是延时的问题,不alert一下,愣是不执行有一个固定的<script src=''></script>就都执行了 是不是类似这样的意思?t.jsalert('test');t.htm<html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>无标题文档</title></head><body><script id="testjs" language="JavaScript" type="text/JavaScript"></script><script language="javascript"> var url = "t.js"; document.getElementById("testjs").src = url;</script></body></html> 没有固定JS标签的:<html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>无标题文档</title></head><body><script language="javascript"> var url = "t.js"; var js = document.createElement("SCRIPT"); js.language = "javascript"; js.defer = true; js.src = url; document.body.appendChild(js);</script></body></html> 有几个方法你都可以试试,1。直接链接地址script.src=...,这样的话只需要注意一点,要得到此标签的readyState值,如果偷懒不想得到值的话,可以用window.setTimeout(fun,2000)这样的延时来获得充分的时候,使得readyState得以触发这个handler。2。用defer属性,但是在Mozilla里是不能这样做的。兼容性较差。IE可用3。用window.execScript()来执行代码,这样也不用再加一个script的标签了。window.execScript()在IE中是可执行的,但Mozilla没有此方法,可以用window.eval来代替。只需要用XMLHttpRequest来获取js然后window.execScript就可以了。 这是我写的一些代码,也许你可以试着用一下。加载包的代码http://blog.never-online.net/article.asp?id=65 index.htm文件代码---------------------------------------------------<body></body><script language="javascript"> var script = document.createElement('script'); script.src = "aa.js"; script.type = 'text/javascript'; alert("ok"); document.body.appendChild(script);</script>aa.js文件代码-----------------------------document.write("ok");像这样的,有alert("ok")就可以执行aa.js里的代码,如果没有alert这句话就不执行 可以啊,刚试过:<html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>无标题文档</title></head><body><script language="javascript"> var url = "t.js"; var js = document.createElement("SCRIPT"); js.language = "javascript"; js.defer = true; js.src = url; document.body.appendChild(js);</script></body></html>t.jsdocument.write("ok"); @dh20156(风之石)把t.js改成var foo=function(){ document.write("OK");};你再试试看 a.jsvar foo=function(){ document.write("OK");};<script language="javascript">function bar(u) { var x=window.ActiveXObject?new ActiveXObject("MSXML2.XMLHTTP"):new XMLHttpRequest(); x.open("GET",u,false); x.send(null); s=x.responseText; try {window.execScript(s)}catch(ex){window.eval(s)};}bar("a.js");foo();</script> 用 BlueDestiny(这回真的准备要改名字了...) 的方法可行,但是出现个新问题,中文乱码 BlueDestiny,如果加载后马上运行是不行的,可以考虑延时或AJAX加载方式像你那种,也可以简单的在BODY的onload事件里处理(针对立即运行的),如:<html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>无标题文档</title></head><body onload="test();"><script language="javascript"> var url = "t.js"; var js = document.createElement("SCRIPT"); js.language = "javascript"; js.defer = true; js.src = url; document.body.appendChild(js);</script></body></html>t.jsvar foo=function(){ document.write("OK");} 用我的笨办法行了,哥们在下面加一个空的js,简单省事<script language='javascript' src='empty.js'></script> 呵呵,RoseKnife(阿楚),是我贴错了t.js你把foo改成test ^_^ <html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>无标题文档</title></head><body onload="test();"><script language="javascript"> var url = "t.js"; var js = document.createElement("SCRIPT"); js.language = "javascript"; js.defer = true; js.src = url; document.body.appendChild(js);</script></body></html>t.jsvar test=function(){ document.write("OK");}再不行就无语了! 只能无语了! 错误: <body onload="test();"> BlueDestiny(这回真的准备要改名字了...) 快出来帮帮忙,怎么解决中文乱码的问题。 <html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>无标题文档</title></head><body><script language="javascript"> var url = document.location.href; if(url.indexOf("?")<0){ url="http://127.0.0.1/js/articlelist.asp?url=www.sxfeiyang.com&id=3"; } else{ url = "http://127.0.0.1/js/articleList.asp" + url.substring( url.indexOf("?") ); } function bar(u) { var x=window.ActiveXObject?new ActiveXObject("MSXML2.XMLHTTP"):new XMLHttpRequest(); x.open("GET",u,false); x.send(null); s=x.responseText; try {window.execScript(s)}catch(ex){window.eval(s)}; } bar(url); foo();</script></body></html>我用 BlueDestiny 的办法可以实现,就是显示中文乱码,快出来帮帮忙哦。 你先看我写的一篇文章http://blog.never-online.net/article.asp?id=73 @dh20156(风之石) 这个脚本解释有关的,你先运行这个,你就明白了。设a.js为var foo=function(){document.write("I am a.js content foo() function");};-----------------------------<html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>never-online dynamic code test page</title></head><body><pre>readyState的含义 - uninitialized : 脚本对象刚被创建,脚本代码未载入; - loading : 脚本代码载入中; - loaded : 脚本代码完成读入,但尚未开始解释执行; - interactive : 解释执行过程中; - complete : 脚本已经执行完成。</pre><div id="viewer"></div><script type="text/javascript">window.onerror=function(msg,url,line){ document.getElementById("viewer").innerHTML+='<p style="color:red">错误:'+msg+'line:'+line+'</p>'; return true;}function bar(u) { var x=document.createElement("SCRIPT"); x.src=u; x.defer=true; document.getElementsByTagName("HEAD")[0].appendChild(x);}bar("a.js");(function getReadyState(){ var e=document.getElementById("viewer") var x=true; var a = document.getElementsByTagName("SCRIPT"); for (var i=0; i<a.length; i++) { if (a[i].readyState=='complete' && x!=false) x=true; else x=false e.innerHTML+=(a[i].src?a[i].src+':':'noname:')+a[i].readyState+"<br />"; } e.innerHTML+="<hr/>"; if (x) window.clearTimeout(window.timer); else window.timer=window.setTimeout('getReadyState()',1000);}());foo();</script><script type="text/javascript">//<![CDATA[foo();//]]></script></body></html>@RoseKnife(阿楚) :中文乱码可以解决。但是要用到vbs,如果兼容性不是那么重要的话,用vbs解码 <script type="text/javascript"> //<![CDATA[ function bar(u) { var x=window.ActiveXObject?new ActiveXObject("MSXML2.XMLHTTP"):new XMLHttpRequest(); x.open("GET",u,false); x.send(null); s=parseScript(x.responseText); try {window.execScript(s)}catch(ex){window.eval(s)}; } function parseScript(jscode) { // --- toCurrentCharset(), by aimingoo 解码 window.execScript(''+ 'Function Asc2Unicode(n) \n'+ ' Asc2Unicode = Chr(n) \n'+ 'End Function \n'+ 'Function SafeArray2Str(body) \n'+ ' SafeArray2Str = CStr(body)\n'+ 'End Function','VBScript'); var r1 = /%u(..)(..)/g, r2 = /%([8,9,A-F].)%(..)/g; var toUnicode = function($0, $1, $2) {return Asc2Unicode(parseInt($1+$2, 16))} toCurrentCharset = function(body) { return unescape(escape(SafeArray2Str(body)).replace(r1, "%$2%$1").replace(r2, toUnicode)); }; jscode=toCurrentCharset(jscode); window.execScript(jscode, 'JavaScript'); //IE有效,vbs解码 return jscode; } bar('a.js'); foo(); //]]> </script> BlueDestiny,测试了一下,输出:I am a.js content test() function有什么问题? 主要是看readyState,如果是在loading状态下,foo自然不可用。如果是complete状态下,foo是完全可以用的。上面那里有可能是会出错的,那一行我用红色的字标出来了,而出错的那行,你可以看看上面的readyState。当然你可以用a.js用更复杂的js来代替。 直接把这段换掉原来的bar函数 function bar(u) { function parseScript(jscode) { // --- toCurrentCharset(), by aimingoo 解码 window.execScript(''+ 'Function Asc2Unicode(n) \n'+ ' Asc2Unicode = Chr(n) \n'+ 'End Function \n'+ 'Function SafeArray2Str(body) \n'+ ' SafeArray2Str = CStr(body)\n'+ 'End Function','VBScript'); var r1 = /%u(..)(..)/g, r2 = /%([8,9,A-F].)%(..)/g; var toUnicode = function($0, $1, $2) {return Asc2Unicode(parseInt($1+$2, 16))} toCurrentCharset = function(body) { return unescape(escape(SafeArray2Str(body)).replace(r1, "%$2%$1").replace(r2, toUnicode)); }; jscode=toCurrentCharset(jscode); window.execScript(jscode, 'JavaScript'); //IE有效,vbs解码 return jscode; } var x=window.ActiveXObject?new ActiveXObject("MSXML2.XMLHTTP"):new XMLHttpRequest(); x.open("GET",u,false); x.send(null); s=parseScript(x.responseText); try {window.execScript(s)}catch(ex){window.eval(s)}; } <script language="javascript"> var url = document.location.href; if(url.indexOf("?")<0){ url="http://127.0.0.1/js/articlelist.asp?url=www.sxfeiyang.com&id=3"; } else{ url = "http://127.0.0.1/js/articleList.asp" + url.substring( url.indexOf("?") ); }function bar(u) {var x=window.ActiveXObject?new ActiveXObject("MSXML2.XMLHTTP"):new XMLHttpRequest();x.open("GET",u,false);x.send(null);s=parseScript(x.responseText);try {window.execScript(s)}catch(ex){window.eval(s)};} function parseScript(jscode) { // --- toCurrentCharset(), by aimingoo 解码 window.execScript(''+ 'Function Asc2Unicode(n) \n'+ ' Asc2Unicode = Chr(n) \n'+ 'End Function \n'+ 'Function SafeArray2Str(body) \n'+ ' SafeArray2Str = CStr(body)\n'+ 'End Function','VBScript'); var r1 = /%u(..)(..)/g, r2 = /%([8,9,A-F].)%(..)/g; var toUnicode = function($0, $1, $2) {return Asc2Unicode(parseInt($1+$2, 16))} toCurrentCharset = function(body) { return unescape(escape(SafeArray2Str(body)).replace(r1, "%$2%$1").replace(r2, toUnicode)); }; jscode=toCurrentCharset(jscode); window.execScript(jscode, 'JavaScript'); //IE有效,vbs解码 return jscode; }bar(url);foo();</script>这样写,还是乱码 a.htm 内容如下:<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>HtmL文件调用远程文件列表分页</title></head><body><script language="javascript">var url = document.location.href; if(url.indexOf("?")<0){ url="http://127.0.0.1/js/articlelist.asp?url=www.sxfeiyang.com&id=3";}else{ url = "http://127.0.0.1/js/articleList.asp" + url.substring( url.indexOf("?") );}function bar(u) { var x=window.ActiveXObject?new ActiveXObject("MSXML2.XMLHTTP"):new XMLHttpRequest(); x.open("GET",u,false); x.send(null); s=parseScript(x.responseBody); try {window.execScript(s)}catch(ex){window.eval(s)};}function parseScript(jscode) {// --- toCurrentCharset(), by aimingoo 解码 这段是干什么用的?window.execScript(''+ 'Function Asc2Unicode(n) \n'+ 'Asc2Unicode = Chr(n) \n'+ 'End Function \n'+ 'Function SafeArray2Str(body) \n'+ 'SafeArray2Str = CStr(body)\n'+ 'End Function','VBScript');var r1 = /%u(..)(..)/g, r2 = /%([8,9,A-F].)%(..)/g;var toUnicode = function($0, $1, $2) {return Asc2Unicode(parseInt($1+$2, 16))}toCurrentCharset = function(body) { return unescape(escape(SafeArray2Str(body)).replace(r1, "%$2%$1").replace(r2, toUnicode)); }; jscode=toCurrentCharset(jscode); window.execScript(jscode, 'JavaScript'); //IE有效,vbs解码 return jscode;}bar(url);foo();</script></body></html>总算乱码正常了,但新问题又出现,第一次打开正常,点进下一页时候出现空白一片并报错,唉,这两天个是恶梦啊。----------------------行: 31字符:2由于出现错误80020101而导致此项操作无法完成代码:0Url: http://127.0.0.1/a.htm?PerPageSize=10&CurPage=2&url=www.sxfeiyang.com&id=3我还是先安装数据库到服务器上吧 唉,前功尽弃,原来安装到服务器上后不能调用的,真是郁闷。谢谢这两天帮助我的所有人们,衷心的感谢你们。基实我只是想怎样在本地调用 http://rosesoft.hongxin.cn/js/articlelist.asp?url=www.sxfeiyang.com&id=3这个页面,就是那个分页的问题。 其实用src调用或者是execScript调用都有优缺点。我在文章里也提到了。用window.execScript(eval)方法的弊端为不能很好的调试,必须把exception捕捉后给到上层的容器。而且会出现有的代码不能很好的解析(也就是你上面的异常错误,比如用a=[],就会有问题),还有中文处理等。优点是可以很好的配合使用,以及利用window对象做一个处理从而也能实现using方法等。用src方法是简单,但调用时必须有足够时间。这个方法的优点在某些方面也很明显,现在我也在写这个代码。可以动态的的载入并执行,实际上也是可以实现的,但是代码较多。写好后我发短消息pm你吧 经测试,没有发现你说的问题<html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>无标题文档</title></head><body><script language="javascript"> var url = 'test.js';//这里简化了你原来的url取值 var script = document.createElement("script"); script.language="JavaScript"; script.type="text/JavaScript"; script.src= url; document.body.appendChild(script);// alert("xxx") //问题就在这里</script></body></html>test.jsalert('ok'); 查看了你的原问题:http://community.csdn.net/Expert/topic/4928/4928649.xml?temp=.4017298你可以这样写<script src='http://127.0.0.1/js/articlelist.asp'></script><script language="javascript">var o = document.getElementsByTagName('script');var url = o[0].src.split('?')[0];/* 这里假定需要改变src的script标记为第一个,如不是则可用for(i=0; i<o.length; i++) { document.write(o[i].src+'<br>');}遍历*///取得地址栏url参数var param = location.search.substr(1);//组装成新地址url += '?'+param;//载入jso.[0].src = url;</script> 求一简单的EXT刷新功能 选择列表框后值进入文本框 ,有点小错误求助 在网页中嵌入ppt文件 在Opera浏览器下屏蔽右键的问题 JavaScript正则表达式 js关于复选框问题! 想在顶层窗口打开 请问如何去掉模式对话框上面的?按纽 请问如何在选择下拉列表的一项后,对页面的表格的内容动态变化? js新手求解 。。。。。。。。。 访问一个页面时,弹出一个对话框,要权限验证,这个怎么可以实现? iframe问题,谢谢
script.defer= true;
在下面再加一个空的rs就行了
<script language='javascript' src='empty.js'></script>
有一个固定的<script src=''></script>就都执行了
t.js
alert('test');t.htm
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>
<body>
<script id="testjs" language="JavaScript" type="text/JavaScript"></script><script language="javascript">
var url = "t.js";
document.getElementById("testjs").src = url;
</script></body>
</html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>
<body>
<script language="javascript">
var url = "t.js";
var js = document.createElement("SCRIPT");
js.language = "javascript";
js.defer = true;
js.src = url;
document.body.appendChild(js);
</script></body>
</html>
---------------------------------------------------
<body>
</body>
<script language="javascript">
var script = document.createElement('script');
script.src = "aa.js";
script.type = 'text/javascript';
alert("ok");
document.body.appendChild(script);
</script>aa.js文件代码
-----------------------------
document.write("ok");
像这样的,有alert("ok")就可以执行aa.js里的代码,如果没有alert这句话就不执行
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>
<body>
<script language="javascript">
var url = "t.js";
var js = document.createElement("SCRIPT");
js.language = "javascript";
js.defer = true;
js.src = url;
document.body.appendChild(js);
</script></body>
</html>t.js
document.write("ok");
var foo=function(){
document.write("OK");
};你再试试看
document.write("OK");
};<script language="javascript">function bar(u) {
var x=window.ActiveXObject?new ActiveXObject("MSXML2.XMLHTTP"):new XMLHttpRequest();
x.open("GET",u,false);
x.send(null);
s=x.responseText;
try {window.execScript(s)}catch(ex){window.eval(s)};
}
bar("a.js");foo();</script>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>
<body onload="test();">
<script language="javascript">
var url = "t.js";
var js = document.createElement("SCRIPT");
js.language = "javascript";
js.defer = true;
js.src = url;
document.body.appendChild(js);
</script>
</body>
</html>t.js
var foo=function(){
document.write("OK");
}
在下面加一个空的js,简单省事
<script language='javascript' src='empty.js'></script>
你把foo改成test ^_^
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>
<body onload="test();">
<script language="javascript">
var url = "t.js";
var js = document.createElement("SCRIPT");
js.language = "javascript";
js.defer = true;
js.src = url;
document.body.appendChild(js);
</script>
</body>
</html>t.js
var test=function(){
document.write("OK");
}再不行就无语了!
<body onload="test();">
快出来帮帮忙,怎么解决中文乱码的问题。
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head><body>
<script language="javascript">
var url = document.location.href;
if(url.indexOf("?")<0){
url="http://127.0.0.1/js/articlelist.asp?url=www.sxfeiyang.com&id=3";
}
else{
url = "http://127.0.0.1/js/articleList.asp" + url.substring( url.indexOf("?") );
}
function bar(u) {
var x=window.ActiveXObject?new ActiveXObject("MSXML2.XMLHTTP"):new XMLHttpRequest();
x.open("GET",u,false);
x.send(null);
s=x.responseText;
try {window.execScript(s)}catch(ex){window.eval(s)};
}
bar(url);
foo();
</script>
</body>
</html>我用 BlueDestiny 的办法可以实现,就是显示中文乱码,快出来帮帮忙哦。
这个脚本解释有关的,你先运行这个,你就明白了。设a.js为
var foo=function(){
document.write("I am a.js content foo() function");
};
-----------------------------<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>never-online dynamic code test page</title>
</head>
<body>
<pre>readyState的含义
- uninitialized : 脚本对象刚被创建,脚本代码未载入;
- loading : 脚本代码载入中;
- loaded : 脚本代码完成读入,但尚未开始解释执行;
- interactive : 解释执行过程中;
- complete : 脚本已经执行完成。</pre>
<div id="viewer"></div>
<script type="text/javascript">window.onerror=function(msg,url,line){
document.getElementById("viewer").innerHTML+='<p style="color:red">错误:'+msg+'line:'+line+'</p>';
return true;
}function bar(u) {
var x=document.createElement("SCRIPT");
x.src=u;
x.defer=true;
document.getElementsByTagName("HEAD")[0].appendChild(x);
}
bar("a.js");(function getReadyState(){
var e=document.getElementById("viewer")
var x=true;
var a = document.getElementsByTagName("SCRIPT");
for (var i=0; i<a.length; i++) {
if (a[i].readyState=='complete' && x!=false) x=true; else x=false
e.innerHTML+=(a[i].src?a[i].src+':':'noname:')+a[i].readyState+"<br />";
}
e.innerHTML+="<hr/>";
if (x) window.clearTimeout(window.timer); else
window.timer=window.setTimeout('getReadyState()',1000);
}());foo();</script>
<script type="text/javascript">
//<![CDATA[
foo();
//]]>
</script>
</body>
</html>
@RoseKnife(阿楚) :
中文乱码可以解决。但是要用到vbs,如果兼容性不是那么重要的话,用vbs解码 <script type="text/javascript">
//<![CDATA[
function bar(u) {
var x=window.ActiveXObject?new ActiveXObject("MSXML2.XMLHTTP"):new XMLHttpRequest();
x.open("GET",u,false);
x.send(null);
s=parseScript(x.responseText);
try {window.execScript(s)}catch(ex){window.eval(s)};
}
function parseScript(jscode) {
// --- toCurrentCharset(), by aimingoo 解码
window.execScript(''+
'Function Asc2Unicode(n) \n'+
' Asc2Unicode = Chr(n) \n'+
'End Function \n'+ 'Function SafeArray2Str(body) \n'+
' SafeArray2Str = CStr(body)\n'+
'End Function','VBScript'); var r1 = /%u(..)(..)/g, r2 = /%([8,9,A-F].)%(..)/g;
var toUnicode = function($0, $1, $2) {return Asc2Unicode(parseInt($1+$2, 16))}
toCurrentCharset = function(body) {
return unescape(escape(SafeArray2Str(body)).replace(r1, "%$2%$1").replace(r2, toUnicode));
}; jscode=toCurrentCharset(jscode);
window.execScript(jscode, 'JavaScript'); //IE有效,vbs解码
return jscode;
} bar('a.js'); foo();
//]]>
</script>
I am a.js content test() function有什么问题?
function parseScript(jscode) {
// --- toCurrentCharset(), by aimingoo 解码
window.execScript(''+
'Function Asc2Unicode(n) \n'+
' Asc2Unicode = Chr(n) \n'+
'End Function \n'+ 'Function SafeArray2Str(body) \n'+
' SafeArray2Str = CStr(body)\n'+
'End Function','VBScript'); var r1 = /%u(..)(..)/g, r2 = /%([8,9,A-F].)%(..)/g;
var toUnicode = function($0, $1, $2) {return Asc2Unicode(parseInt($1+$2, 16))}
toCurrentCharset = function(body) {
return unescape(escape(SafeArray2Str(body)).replace(r1, "%$2%$1").replace(r2, toUnicode));
}; jscode=toCurrentCharset(jscode);
window.execScript(jscode, 'JavaScript'); //IE有效,vbs解码
return jscode;
}
var x=window.ActiveXObject?new ActiveXObject("MSXML2.XMLHTTP"):new XMLHttpRequest();
x.open("GET",u,false);
x.send(null);
s=parseScript(x.responseText);
try {window.execScript(s)}catch(ex){window.eval(s)};
}
var url = document.location.href;
if(url.indexOf("?")<0){
url="http://127.0.0.1/js/articlelist.asp?url=www.sxfeiyang.com&id=3";
}
else{
url = "http://127.0.0.1/js/articleList.asp" + url.substring( url.indexOf("?") );
}
function bar(u) {
var x=window.ActiveXObject?new ActiveXObject("MSXML2.XMLHTTP"):new XMLHttpRequest();
x.open("GET",u,false);
x.send(null);
s=parseScript(x.responseText);
try {window.execScript(s)}catch(ex){window.eval(s)};
}
function parseScript(jscode) {
// --- toCurrentCharset(), by aimingoo 解码
window.execScript(''+
'Function Asc2Unicode(n) \n'+
' Asc2Unicode = Chr(n) \n'+
'End Function \n'+ 'Function SafeArray2Str(body) \n'+
' SafeArray2Str = CStr(body)\n'+
'End Function','VBScript'); var r1 = /%u(..)(..)/g, r2 = /%([8,9,A-F].)%(..)/g;
var toUnicode = function($0, $1, $2) {return Asc2Unicode(parseInt($1+$2, 16))}
toCurrentCharset = function(body) {
return unescape(escape(SafeArray2Str(body)).replace(r1, "%$2%$1").replace(r2, toUnicode));
}; jscode=toCurrentCharset(jscode);
window.execScript(jscode, 'JavaScript'); //IE有效,vbs解码
return jscode;
}bar(url);
foo();
</script>这样写,还是乱码
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>HtmL文件调用远程文件列表分页</title>
</head><body>
<script language="javascript">
var url = document.location.href;
if(url.indexOf("?")<0){
url="http://127.0.0.1/js/articlelist.asp?url=www.sxfeiyang.com&id=3";
}
else{
url = "http://127.0.0.1/js/articleList.asp" + url.substring( url.indexOf("?") );
}
function bar(u) {
var x=window.ActiveXObject?new ActiveXObject("MSXML2.XMLHTTP"):new XMLHttpRequest();
x.open("GET",u,false);
x.send(null);
s=parseScript(x.responseBody);
try {window.execScript(s)}catch(ex){window.eval(s)};
}
function parseScript(jscode) {
// --- toCurrentCharset(), by aimingoo 解码 这段是干什么用的?
window.execScript(''+
'Function Asc2Unicode(n) \n'+
'Asc2Unicode = Chr(n) \n'+
'End Function \n'+
'Function SafeArray2Str(body) \n'+
'SafeArray2Str = CStr(body)\n'+
'End Function','VBScript');var r1 = /%u(..)(..)/g, r2 = /%([8,9,A-F].)%(..)/g;
var toUnicode = function($0, $1, $2) {return Asc2Unicode(parseInt($1+$2, 16))}
toCurrentCharset = function(body) {
return unescape(escape(SafeArray2Str(body)).replace(r1, "%$2%$1").replace(r2, toUnicode));
};
jscode=toCurrentCharset(jscode);
window.execScript(jscode, 'JavaScript'); //IE有效,vbs解码
return jscode;
}bar(url);
foo();
</script>
</body>
</html>总算乱码正常了,但新问题又出现,第一次打开正常,点进下一页时候出现空白一片并报错,唉,这两天个是恶梦啊。----------------------
行: 31
字符:2
由于出现错误80020101而导致此项操作无法完成
代码:0
Url: http://127.0.0.1/a.htm?PerPageSize=10&CurPage=2&url=www.sxfeiyang.com&id=3我还是先安装数据库到服务器上吧
http://rosesoft.hongxin.cn/js/articlelist.asp?url=www.sxfeiyang.com&id=3
这个页面,就是那个分页的问题。
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head><body>
<script language="javascript">
var url = 'test.js';//这里简化了你原来的url取值
var script = document.createElement("script");
script.language="JavaScript";
script.type="text/JavaScript";
script.src= url;
document.body.appendChild(script);
// alert("xxx") //问题就在这里
</script>
</body>
</html>test.js
alert('ok');
<script src='http://127.0.0.1/js/articlelist.asp'></script><script language="javascript">
var o = document.getElementsByTagName('script');
var url = o[0].src.split('?')[0];
/* 这里假定需要改变src的script标记为第一个,如不是则可用
for(i=0; i<o.length; i++) {
document.write(o[i].src+'<br>');
}
遍历
*///取得地址栏url参数
var param = location.search.substr(1);//组装成新地址
url += '?'+param;//载入js
o.[0].src = url;
</script>