javascript 能否异步调用其他页面的javascript方法 A页面的 Function MyFirst();B页面的Function MySec()现在需要在A页面里异步调用到MySec(),是否可行?没有后台可用,纯JS。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用一个隐藏的iframe嵌入B页面. Iframe还是会延迟A页面的加载阿,我想要的效果就是不让这个A页面一直停住阿,MySec()执行的时间会比较就一点的. 不明白你说的异步调用是什么意思 你可以在a页面用window.open方法打开的 b页面那么你可以任意控制b页面的。 完全可行,方法很多,除了楼上说的那一种,还可以用AJAX读B页面,从中提取MySec()并执行。其实更好更自然的方式,是从组织上合理地调整安排,把这种多个页面都需要执行的MySec()函数提取到一个专门的JS中,然后在各个用到的页面里用<SCRIPT SRC>去引用进来。如果不是在结构上合理安排,而是在这个页面或那个页面去这引一次那引一次,虽然可以运行,但整个就乱套了,维护起来就成问题了。 方法太多了。都被大家说得差不多了。我顶个贴就是了。不过个人还是喜欢IFRAME和AJAX方法,感觉更爽一些! function MyCheck(){ alert(this.name + "--" + document.activeElement.name); $.ajax({ url: 'test3.html/MyHello', type: 'POST', dataType: 'text/html', data:'{name:"my"}', timeout: 1000, error: function(){ alert('Error loading XML document'); }, success: function(txt){ // do something with xml alert("success="+txt); //window.CallBack(); //$('div#myfun').html(txt); //document.write(txt); } }); }获取到的是整个网页,不是这个方法返回的内容 把读到内容放在DIV中还是会延迟本页面的加载 这个要在A页面中用iframe将B页面引入,就可以了; [Quote=引用 5 楼 theforever 的回复:引用楼主 criszc 的回复:A页面的 Function MyFirst();B页面的Function MySec()现在需要在A页面里异步调用到MySec(),是否可行?没有后台可用,纯JS。完全可行,方法很多,除了楼上说的那一种,还可以用AJAX读B页面,从中提取MySec()并执行。其实更好……[/Quote]同意这点管理更方便。。 怎么: 用AJAX读B页面,从中提取MySec()并执行呢? 最好的办法是重构,楼上各位说的都已经很明白了,但是你一定要这个方法的话:1、ajax载入b页面的内容2、处理文本的角度去提取你的函数,可以用正则/内容长度定位,最后将“function MySec(){内容}”函数整个声明代码整个提取出来3、创建一个“script”元素的标签,文本内容为第二步提取出的内容,然后追加到head标签中或者直接(eval(第二步提取出来的内容))4、现在函数可以用了 求助,大家帮忙解决一个JS网址加密的问题, javascript弹出新div层的问题 jquery 文件中 为什么方法和属性 点不出来 js文件嵌入dll中 怎么调用 别的网站上的JAVASCRIPT函数? 如何控制textarea的长度,比如限制为0~100,非中文字符 asp.net引用了js文件,文件更新后,客户端不更新怎么办 在hta 里用 window.open()打开的窗口 控制大小 失效 如何处理 哪位提供一个这样的菜单例子 javascript 中二维数组的定义与赋值及读取 新手求助标准化 relatedTarget 按字段,给table的行【排序】
那么你可以任意控制b页面的。
alert(this.name + "--" + document.activeElement.name);
$.ajax({
url: 'test3.html/MyHello',
type: 'POST',
dataType: 'text/html',
data:'{name:"my"}',
timeout: 1000,
error: function(){
alert('Error loading XML document');
},
success: function(txt){
// do something with xml
alert("success="+txt);
//window.CallBack();
//$('div#myfun').html(txt);
//document.write(txt);
}
});
}获取到的是整个网页,不是这个方法返回的内容
引用楼主 criszc 的回复:
A页面的 Function MyFirst();B页面的Function MySec()
现在需要在A页面里异步调用到MySec(),是否可行?没有后台可用,纯JS。完全可行,方法很多,除了楼上说的那一种,还可以用AJAX读B页面,从中提取MySec()并执行。其实更好……
[/Quote]
同意这点管理更方便。。
怎么: 用AJAX读B页面,从中提取MySec()并执行呢?
最好的办法是重构,楼上各位说的都已经很明白了,但是你一定要这个方法的话:1、ajax载入b页面的内容
2、处理文本的角度去提取你的函数,可以用正则/内容长度定位,最后将“function MySec(){内容}”函数整个声明代码整个提取出来
3、创建一个“script”元素的标签,文本内容为第二步提取出的内容,然后追加到head标签中
或者
直接(eval(第二步提取出来的内容))
4、现在函数可以用了