RT,目前正在接入一个平台,iframe中的域属于我自己,外面层属于平台,请问如何在iframe中掉到平台的js函数???parent失效中- -外层域:<iframe id="ymbga_app" width="760" scrolling="no" height="900" frameborder="0" border="0" src="http://a3f5a14380e00d7c7c7543f0a212b16cd4ac8048.app.sb.mbga-platform.jp/gadgets/ifr?country=JP&parent=dummy&lang=ja&view=canvas&debug=1&url=http%3A%2F%2F175.111.66.20%2Fjapan%2FindexXml.php&st=default%3ASVAiOHB0dyYlQH4tQV1KQQ4zFPs7EMOIczY8SowdpINn0MJnYZL2Wj8B5UqUHnRinDfBPpVyx%2BxV%0AeDfpWgNw5DkEzGRXoIOlD77PkHwgdvS9Vl22WWmHdx9r6yFGLZCXjtrn6QAJCCfPPmPnpnLdIJIj%0A4SxtI8NEfUbynvJw1M7l1MX5ktjxOmKDvONwhEJkIsQpdHMVa%2BF4n8qR81uyfxovCb7sojljt7mR%0AQOmkPQQlGYW9%0A&nocache=1#rpctoken=1273211965">自己的域:iframe id="flash" scrolling="no" frameborder="0" src="http://175.111.66.20/mk/load.html?mnick=62659&key=AhBB6KvjN4&site=8&sid=1324100756" style="height:560px;width:760px;overflow-x: hidden;border: 0pt none;" border="0">
在线等

解决方案 »

  1.   

    精华推荐:看看baidu是如何AJAX跨域的
    这个你看了没
      

  2.   

    将数据封装进JSON,利用script标签传递一种很常用的跨域处理方法。 
    看的不是很懂- - 麻烦指点
      

  3.   

    别看那些写得那么玄乎,其实本质很简单,就是动态创建一个 Script 标签,然后引用到另一个域下的页面,而那个页面返回的是 JavaScript 而已。简单的写法如下:
    A 页面,你需要调用的页面,在另一个域:// 后端输出,用 C# 写的
    protected void Page_PreInit(object sender, EventArgs e)
    {
    Response.Write("testFn();");
    Response.Write("var testVar = 'aaa';");
    Response.End();
    }
    调用页面,B 页面function testFn() { // 这个函数会被 A 中的 testFn 调用
    alert('aaa');
    }

    function crossDomain() {
    var script = document.createElement('script');
    script.type = 'text/javascript';
    script.src = 'http://localhost/roc100v/CrossDomain.aspx';
    script.onload = function() {
    alert(testVar); // 这里可引用到 A 返回的变量 testVar
    };
    var head = document.getElementsByTagName('head')[0];
    head.appendChild(script);
    }<input type="button" onclick="crossDomain()" value="跨域" />
      

  4.   


    用js 写正则表达式过滤一下,就ok了!
      

  5.   

    不可能的,不要想当然。首先,你读不到其它域返回来的数据,如果可以直接读到其它域返回的数据,就没必要这么七折八弯的想办法了。连数据都没有,怎么去过滤。
    其次,即使通过其它的方法来跨域,比如内嵌一个 iframe,通过 iframe.window.name 属性来接收数据,那也要对方往 name 里赋值才行。
    说白了,就是对方要遵守一定的规则,你才能调用,而不是对方随便返回个页面,你都可以跨域。
    顺便说一句,JS 通过 Ajax 请求后台,后台发 HTTP 请求,获取到对方页面,这种方式从本质上来说,不叫 JS 跨域,只是绕开了 JS 跨域的限制。
      

  6.   

    的确取不到。
    今天试了才发现的。
    连用Iframe 都不行。--虽然iframe 的innerHTML已得到了数据。
    我用 iframe  的innerHTML来取 竟然不行!
    这个,我也搞不懂为什么会这个样。 (肯定是什么安全限定了)
      

  7.   

    可能是js 被限了权。
    如用两层,就ok!
    即ajax 到你的服务去,你的服务器再去请求 他域的页面。 
    你在服务器用C# 来 进行 正则过滤!
      

  8.   

    iframe中的域属于我自己,
    就是人家用iframe调用你。你完全可以不用提供iframe ,
    可以提供一段动态js.js内完全可以创建你要显示的dom,script 标签是可以跨域的,他导入你的js ,你的js 也能调用他的方法,他的方法也能调用你的方法。