A页面的 Function MyFirst();B页面的Function MySec()
现在需要在A页面里异步调用到MySec(),是否可行?没有后台可用,纯JS。

解决方案 »

  1.   

    用一个隐藏的iframe嵌入B页面.
      

  2.   

    Iframe还是会延迟A页面的加载阿,我想要的效果就是不让这个A页面一直停住阿,MySec()执行的时间会比较就一点的.
      

  3.   

    不明白你说的异步调用是什么意思 你可以在a页面用window.open方法打开的 b页面
    那么你可以任意控制b页面的。
      

  4.   

    完全可行,方法很多,除了楼上说的那一种,还可以用AJAX读B页面,从中提取MySec()并执行。其实更好更自然的方式,是从组织上合理地调整安排,把这种多个页面都需要执行的MySec()函数提取到一个专门的JS中,然后在各个用到的页面里用<SCRIPT SRC>去引用进来。如果不是在结构上合理安排,而是在这个页面或那个页面去这引一次那引一次,虽然可以运行,但整个就乱套了,维护起来就成问题了。
      

  5.   

    方法太多了。都被大家说得差不多了。我顶个贴就是了。不过个人还是喜欢IFRAME和AJAX方法,感觉更爽一些!
      

  6.   

      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);
    }
    });
      }获取到的是整个网页,不是这个方法返回的内容
      

  7.   

    把读到内容放在DIV中还是会延迟本页面的加载
      

  8.   

    这个要在A页面中用iframe将B页面引入,就可以了;
      

  9.   

    [Quote=引用 5 楼 theforever 的回复:
    引用楼主 criszc 的回复:
    A页面的 Function MyFirst();B页面的Function MySec()
    现在需要在A页面里异步调用到MySec(),是否可行?没有后台可用,纯JS。完全可行,方法很多,除了楼上说的那一种,还可以用AJAX读B页面,从中提取MySec()并执行。其实更好……
    [/Quote]
    同意这点管理更方便。。
      

  10.   


    怎么: 用AJAX读B页面,从中提取MySec()并执行呢?
      

  11.   


    最好的办法是重构,楼上各位说的都已经很明白了,但是你一定要这个方法的话:1、ajax载入b页面的内容
    2、处理文本的角度去提取你的函数,可以用正则/内容长度定位,最后将“function MySec(){内容}”函数整个声明代码整个提取出来
    3、创建一个“script”元素的标签,文本内容为第二步提取出的内容,然后追加到head标签中
    或者
    直接(eval(第二步提取出来的内容))
    4、现在函数可以用了