postMessage跨域

子Iframe端脚本:

$(window).resize(function(){

if($(".fr-date-trigger-center").length>0){
$(".fr-date-trigger-center").each(function(){
if($(this).parent().parent().width()==80){
$(this).parent().parent().find(".fr-trigger-text").width(59);
$(this).parent().parent().find(".fr-trigger-text").find("input").width(53);
}

});
}
});
var param;
$(document).ready(function(){
$(".parameter-container .fr-trigger-btn-up").css("background","#B22222");
$(".parameter-container .fr-btn-up").css("background","#B22222");
$(".parameter-container .fr-trigger-btn-up").attr("title","soBtn");
$(".parameter-container .fr-btn-up").attr("title","soBtn");
$("div[title=soBtn]").mouseover(function(){
$(this).css("background","#D62929");
});
$("div[title=soBtn]").mouseout(function(){
$(this).css("background","#B22222");
});
//$(".parameter-container .fr-trigger-btn-down").css("background","red");


//$(".parameter-container .fr-btn-over").css("background","#D62929");
//$(".parameter-container .fr-btn-down").css("background","red");
var u;
if(parent != window){
try{
var flaginit = true;
if (!Array.prototype.indexOf)
{
 Array.prototype.indexOf = function(elt /*, from*/)
 {
var len = this.length >>> 0;
var from = Number(arguments[1]) || 0;
from = (from < 0)
? Math.ceil(from)
: Math.floor(from);
if (from < 0)
 from += len;
for (; from < len; from++)
{
 if (from in this &&
 this[from] === elt)
return from;
}
return -1;
 };
}
if(flaginit){
var userAgent = navigator.userAgent;
var index = userAgent.indexOf("MSIE");
var bo = userAgent.substr(index,8);  
if(bo.substr(bo.length-3,bo.length)<9 && index>0){
$("div[widgetname=SEARCH]").click(function(){
getReg(u,true);
});
param = $("div[widgetname=PARA]").detach();
top.postMessage("fineReport","http://xxx" );
top.postMessage("fineReport","http://xxx" );
window.attachEvent('onmessage', initsIE);
}else{
var sourl = document.referrer.replace("ReportUrlAction_checkOut","soMenu/fineReport.jsp");
if(sourl!="http://xxx" && sourl!="http://xxx"){
$("div[widgetname=PARA]").remove();
}else{
$("div[widgetname=SEARCH]").click(function(){
getReg(sourl,true);
});
param = $("div[widgetname=PARA]").detach();
var sourl = document.referrer.replace("ReportUrlAction_checkOut","soMenu/fineReport.jsp");
top.postMessage("fineReport",sourl );
window.addEventListener('message', inits, false);
}
}
}
}catch(ex){
$("div[widgetname=PARA]").remove();
}
}else{
$("div[widgetname=PARA]").remove();
}
});
function inits(e){
var data = e.data;
if(e.origin=="http://xxx" || e.origin=="http://xxx"){

$("div[widgetname=__layout4align__]").append(param);
changeDateBtnwidth();

if(data.split("&").length>1){
var arry = data.split("&");
$.each(arry,function(i){
var reg = arry[i].split("=");
$("div[widgetname="+reg[0].toUpperCase()+"]").find("input[name="+reg[0].toUpperCase()+"]").val(reg[1]);
});
}else if(data.split("&").length==1){
var reg = data.split("&")[0].split("=");
$("div[widgetname="+reg[0].toUpperCase()+"]").find("input[name="+reg[0].toUpperCase()+"]").val(reg[1]);
flaginit = false;
}
window.removeEventListener('message', inits, false);
}
}
function initsIE(e){
var data = e.data;
if(e.origin=="http://xxx" || e.origin=="http://xxx"){

$("div[widgetname=__layout4align__]").append(param);
changeDateBtnwidth();

if(data.split("&").length>1){
var arry = data.split("&");
$.each(arry,function(i){
var reg = arry[i].split("=");
$("div[widgetname="+reg[0].toUpperCase()+"]").find("input[name="+reg[0].toUpperCase()+"]").val(reg[1]);
});
}else if(data.split("&").length==1){
var reg = data.split("&")[0].split("=");
$("div[widgetname="+reg[0].toUpperCase()+"]").find("input[name="+reg[0].toUpperCase()+"]").val(reg[1]);
flaginit = false;
$("div[widgetname=SEARCH]").click(function(){
if(e.origin=="http://xxx"){
u="http://xxx";
}else if(e.origin=="http://xxx"){
u="http://xxx";
}
});
}
window.detachEvent("onmessage", initsIE);
}
}
function getReg(url,flag){
if(parent != window){
top.postMessage("fineReport", url);
}
}
function changeDateBtnwidth(){
if($(".fr-date-trigger-center").length>0){
$(".fr-date-trigger-center").each(function(){
if($(this).parent().parent().width()==80){
$(this).parent().parent().width(100);
$(this).parent().parent().find(".fr-trigger-text").width(79);
$(this).parent().parent().find(".fr-trigger-text").find("input").width(73);
}
});
}

}

父端脚本:

if(checkBrowser()=="IE"){
window.attachEvent('onmessage', function(e) {
var data = e.data;
$("#form0").attr("action","ReportUrlAction_checkOut");
   $("#form0").attr("target","abc");
$("#form0").submit();
if("http://
xxx".indexOf(e.origin)!=-1){
$.ajax({
url: "ReportUrlAction_getReportReg",
dataType: 'json',
async: true, 
data: "regFlag=reg&reportName="+'${reportname}', 
type: "post",   
success: function(result) {
//var t = ${sessionScope.user.userId};
    //window.frames[0].postMessage("reg="+$("#reg").val(), url);
    window.frames[0].postMessage("user_id="+result.result, result.url);
}
});
}
   });
}else{
window.addEventListener('message', function(e) {
       var data = e.data;
       $("#form0").attr("action","ReportUrlAction_checkOut");
   $("#form0").attr("target","abc");
$("#form0").submit();
       if("http://
xxx".indexOf(e.origin)!=-1){
       $.ajax({
url: "ReportUrlAction_getReportReg",
dataType: 'json',
async: true, 
data: "regFlag=reg&reportName="+'${reportname}', 
type: "post",   
success: function(result) {
//var t = ${sessionScope.user.userId};
    //window.frames[0].postMessage("reg="+$("#reg").val(), url);
    window.frames[0].postMessage("user_id="+result.result, result.url);
}
});
       }
   }, false);
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值