本帖最后由 u011941411 于 2013-09-17 13:34:24 编辑

解决方案 »

  1.   

    var str="";
    var callback = function(a) {
      alert('传值来源:' + a.origin + ',值是:' + a.data);
    str=a.data
    }
    //能弹出值,现在我想把a.data赋值给str,要怎么做
    var mdata=?
    不明白你的意思
      

  2.   

    str = a.data ,这样子不就可以了吗,你还想怎么取值啊...
      

  3.   


    var str;
    var callback = function(a) {
      str = a.data;
      alert('传值来源:' + a.origin + ',值是:' + a.data);
    }
    //操作str
      

  4.   

    问题是这样取不到值啊:var str;
    var callback = function(a) {
      str = a.data;
      alert('传值来源:' + a.origin + ',值是:' + a.data);
    }
    alert(str);alert('传值来源:' + a.origin + ',值是:' + a.data);显示的是alert(str)显示的是
      

  5.   


    var str;
    var callback = function(a) {
      str = a.data;
      alert('传值来源:' + a.origin + ',值是:' + a.data);
      alert(str);
    }
      

  6.   

    调试一下看在callback函数里面是否已经赋值成功
    或者试一下重新赋值
      

  7.   

    这样我知道能取到,但问题是其它地方怎么用这个str呢
      

  8.   

    alert(str)放在里边能取到,放在外边取不到,没有办法用这个变量啊
      

  9.   


      var str;
      var callback = function(a) {
        str = a.data;
        alert('传值来源:' + a.origin + ',值是:' + a.data);
      }
      callback();
      alert(str);
      

  10.   


    你肯定要把对应参数加上   callback(a);不太清楚你的上下文作用域  实在要实现可以考虑闭包
      

  11.   

    要么用命名空间处理,要么用全局变量来缓存,
    也可以缓存到 dom上,你的应用场景不具体
      

  12.   

    我运用的代码主要是这个,实现的功能也是子页面传值
    http://www.swind.me/%E4%B8%80%E8%A1%8C%E4%BB%A3%E7%A0%81%E8%A7%A3%E5%86%B3iframe%E8%B7%A8%E5%9F%9F/
      

  13.   

    console.info(a);看是什么值,再来剖析别的。 
      

  14.   


    执行到这个alert(str)的时候callback函数还没有执行。也就是说str还没有赋值。
      

  15.   

    页面放一个隐藏input
    <input type="hidden" id="src"/>var callback = function(a) {  $("#src").val(a.data);  alert('传值来源:' + a.origin + ',值是:' + a.data);}
    var str;
    src=$("#src").val();
    alert(str);
      

  16.   


    执行到这个alert(str)的时候callback函数还没有执行。也就是说str还没有赋值。这是正常 的,只要在callback调用之前,检测str或者都是undefined。
    所以,你要使用a.data,必须等callback调用完,或则在callback里面写你的代码。
      

  17.   


    alert(console.info(a))后是
    使用 firefox或者chrome,打开控制台查看
    不要alert 
    直接 console.info()输出。