javascript语句执行的怪问题? 我要在XML文件中用javascript获取访问此页面的IP地址,调用远程Web Services传递过去,哪位大侠知道怎么获取IP地址呀? Web Services在.Net环境下是无法获取客户端IP地址的. 上网找了几天了,都无法解决。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://blog.csdn.net/chinmo/archive/2008/02/15/2096871.aspx看看这个属性 http://blog.csdn.net/chinmo/archive/2008/02/15/2096871.aspx 1.alert()后才能执行...原因可能是window_onload(3)里的回调函数还没有执行完毕,比如webservice的结果还没有返回。解决办法是加个标志,如果还没返回结果,延迟调用本函数(setTimeout,或看看我的博客中关于doLater的用法);2、获得URL,可以看看document.location对象。它有:host,hostname,href,pathname,port,protocol等属性,应该可以满足你的需要。 5楼的方法从原理上可行,我按照你的博客里做了个试验没有效果,不知怎么回事!代码如下:<html><head></head><body onload="window_onload()"><script language="javascript">var functionA = function(){ alert("run me next");}var functionB = function(){ alert("run me first");}var but = document.getElementById("demoButton");if(but.onclick) but.onclick = but.onclick.bindAfter(functionA.bindBefore(functionB));else but.onclick = functionA.bindBefore(functionB);</script><form><input type="button" id="demoButton" value="执行顺序" onclick="alert('第一个');"></form></body></html>问题解决就给分。 <html> <head></head> <body> <form> <input type="button" id="demoButton" value="执行顺序" onclick="alert('第一个');"> </form> <script language="javascript"> var $blank=function(){};(function(s){ Object.prototype.array = function(){ if(this.length){ var res = []; for(var i=0;i<this.length;i++)res[i]=this[i]; return res; } } s.bind = function(){ var _method = this; var args = arguments.array(); var cler = args.length>0?args.shift():window; return function(){ return _method.apply(cler,args.concat(arguments.array())); } } s.bindAfter = function(){ var args = arguments.array(); var func = args.length>0?args.shift():$blank; var cler = args.length>0?args.shift():window; return function(){ var res = true; var argus = args.concat(arguments.array()); res = this.apply(cler,argus); if(res !== false)res = func.apply(cler,argus); return res; }.bind(this); } s.bindBefore = function(){ var args = arguments.array(); var func = args.length>0?args.shift():$blank; var cler = args.length>0?args.shift():window; return function(){ var argus = args.concat(arguments.array()); res = func.apply(cler,argus); return res === false || res == "false"?res:this.apply(cler,argus);; }.bind(this); }})(Function.prototype);var functionA = function(){ alert("run me next"); } var functionB = function(){ alert("run me first"); } var but = document.getElementById("demoButton"); if(but.onclick) but.onclick = but.onclick.bindAfter(functionA.bindBefore(functionB)); else but.onclick = functionA.bindBefore(functionB); </script> </body> </html> 菜农的方法运行没有问题,我应用到XML中的实际项目中作了一番修改就出了问题。可能是自己对XML不熟,javascript不精造成的,问题虽然没有解决,不过还是很感谢大家的热心帮助,准备把xml+javascript学习一下从新自己做。 求二个正则 正则表达式[.\n]与[\s\S]的区别是什么? 关于div播放 Webstorm开发AngularJS,数据如何及时显示在 chrome浏览器中 中控指纹仪在网页上的二次开发biokey+php+JS--求案例 如何编写动态等待页面,有分加 <P>的行距可以控制吗?谢谢 求助:如何给这个计时器加上年月? 求助!怎么能用javascript,获取表单提交过来的值? 请教一个问题,请大家帮帮忙。 正则表达式 如何用JAVA语言来表达JavaScript的意思呢?
看看这个属性
原因可能是window_onload(3)里的回调函数还没有执行完毕,比如webservice的结果还没有返回。解决办法是加个标志,如果还没返回结果,延迟调用本函数(setTimeout,或看看我的博客中关于doLater的用法);
2、获得URL,可以看看document.location对象。它有:host,hostname,href,pathname,port,protocol等属性,应该可以满足你的需要。
<html>
<head>
</head>
<body onload="window_onload()">
<script language="javascript">
var functionA = function(){
alert("run me next");
}var functionB = function(){
alert("run me first");
}var but = document.getElementById("demoButton");
if(but.onclick)
but.onclick = but.onclick.bindAfter(functionA.bindBefore(functionB));
else
but.onclick = functionA.bindBefore(functionB);
</script>
<form>
<input type="button" id="demoButton" value="执行顺序" onclick="alert('第一个');">
</form>
</body>
</html>
问题解决就给分。
<html>
<head>
</head>
<body>
<form>
<input type="button" id="demoButton" value="执行顺序" onclick="alert('第一个');">
</form>
<script language="javascript">
var $blank=function(){};
(function(s){
Object.prototype.array = function(){
if(this.length){
var res = [];
for(var i=0;i<this.length;i++)res[i]=this[i];
return res;
}
}
s.bind = function(){
var _method = this;
var args = arguments.array();
var cler = args.length>0?args.shift():window;
return function(){
return _method.apply(cler,args.concat(arguments.array()));
}
}
s.bindAfter = function(){
var args = arguments.array();
var func = args.length>0?args.shift():$blank;
var cler = args.length>0?args.shift():window;
return function(){
var res = true;
var argus = args.concat(arguments.array());
res = this.apply(cler,argus);
if(res !== false)res = func.apply(cler,argus);
return res;
}.bind(this);
}
s.bindBefore = function(){
var args = arguments.array();
var func = args.length>0?args.shift():$blank;
var cler = args.length>0?args.shift():window;
return function(){
var argus = args.concat(arguments.array());
res = func.apply(cler,argus);
return res === false || res == "false"?res:this.apply(cler,argus);;
}.bind(this);
}
})(Function.prototype);
var functionA = function(){
alert("run me next");
}
var functionB = function(){
alert("run me first");
}
var but = document.getElementById("demoButton");
if(but.onclick)
but.onclick = but.onclick.bindAfter(functionA.bindBefore(functionB));
else
but.onclick = functionA.bindBefore(functionB);
</script>
</body>
</html>