页面中引入帆软报表,同时也有别的信息,需要进行信息的交互,但是帆软报表服务器是另外一个服务器,并且非同域名,那么就会出现跨域的问题,解决方案如下:
1、需要在帆软报表的点击js事件中引入一个和父页面同系统的一个页面,如下
var tarValue = this.options.form.getValueByName("textEditor0");//这里根据是报表还是表单用不同的方式,自己定义
var url = "http://192.168.101.226:8080/test/proxy.html?_=" + new Date().getTime()
+ "&tarValue=" + tarValue;
alert(url);
var iframe = document.getElementById('proxy');
if (!iframe) {
// 如果iframe还没有加进去,则加进去
iframe = document.createElement('iframe');
document.getElementsByTagName('head')[0].appendChild(iframe);
iframe.setAttribute('name','proxy');
iframe.setAttribute('id','proxy');
}
iframe.setAttribute('src', url);
2、proxy.html中如果引用报表所在的父页面中的方法,看这个HTML在哪一级了,至少两级,帆软报表本身一级,父页面一级,所以调用父页面函数a的话,就需要
parent.parent.window.a();
执行这两个步骤即可。