cross_domain

要传参数的页面

引用cross_domain.js  这个是另外一个工程(m)的地址

<script type="text/javascript" src="http://localhost:8080/m/cross_domain.js"></script>

在这里我是通过点击事件,,传值过去   跳转①

 function goToCm(obj){
        var appid = $(obj).attr("appid");
        var name = $(obj).attr("_name");
        var _url = $(obj).attr("_url");
        var url = "name="+name+"@"+_url +"@"+ appid;  //在这里通过@来截取
        reloadSmartFrame(url);  -----这里调用m工程的方法
    }

①   这里是m工程的js     cross_domain.js

window.onload = function() {
    var smartFrame = document.createElement("iframe");
    smartFrame.setAttribute("id", "smartFrame");
    smartFrame.setAttribute("style", "display: none");
    var body =  document.getElementsByTagName("body")[0];
    body.appendChild(smartFrame);
    document.getElementById('smartFrame').src = "http://www.smart.com:8080/cm/cross_domain.jsp";
}


function reloadSmartFrame(url) {   --进来执行这方法(方法的前提是在页面中添加一个iframe)
    document.getElementById('smartFrame').src = "http://www.smart.com:8080/cm/cross_domain.jsp?"+url;
}

cross_domain.jsp

<script type="text/javascript"> decodeURI(decodeURI())转乱码  ---中文过来,出现乱码             ---abc  ①  @ df ②  @ fg    ③
    window.onload = function(){
        var text = decodeURI(decodeURI(window.location.href)).split('=')[1];  --拿到第一个等号 【1】 1代表=号后面的值
        var textName = decodeURI(decodeURI(text.split('@')[0]));     --同理,,,第一个@前面的值①
        var textUrl = decodeURI(decodeURI(text.split('@')[1]));    --第一个@后面的值
        var textAppId = decodeURI(decodeURI(text.split('@')[2]));     
       parent.parent.crossdomainCallback(textName, textUrl, textAppId);    parent.parent 子页面找老爸的老爸的这个方法
    }
</script>

最后页面的js

 function crossdomainCallback(textName, textUrl, textAppId) {
        /*11-2页签增加样式*/
        var appid = textAppId, src_link = textUrl, mc_link = textName, app_xl = "xl";
                    var xn = '#wrap_' + appid, label_id = '#' + appid;
        console.info("1"+ textAppId);
        console.info("2"+ textUrl);
        console.info("3"+ textName);
                 $("body").removeClass("qping_work");
                 $("body").attr("style", "overflow:hidden");
        if ($(xn).size() == 0) {
            $('#wrap_gzt').after(
                    '<div class="container" id="wrap_' + appid + '">' +
                    '<iframe class="main_iframe yc" width="100%" frameborder="0" height="100%" scrolling="yes" 
onreadystatechange="stateChangeIE(this)" onload="stateChangeFirefox(this)" name="' + appid + '_callframe" src="' + src_link + '">' + '</iframe>' + '</div>' ); $(".mask").show(); $(".progress.progress-striped.active.ex").show(); } else { $(xn).find("iframe").removeClass("yc"); $(".mask").hide(); $(".progress.progress-striped.active.ex").hide(); } $(xn).siblings(".container").addClass("yc_div"); $(xn).removeClass("yc_div"); if ($(label_id).size() == 0) { $("#headAdd").before( '<label class="ui-item ui-tab-item J_menuTab" id=' + appid + '>' + '<div lang=' + src_link + ' appid=' + appid + ' app_xl=' + app_xl + '>' + mc_link + '</div>' + '<i class="menu-remove"></i></label>' ); } $(".work_ico").parent().removeClass("ui-tab-item-selected"); $(label_id).addClass("ui-tab-item-selected cjxz").siblings("label.ui-item").removeClass("ui-tab-item-selected cjxz"); /*11-2页签增加样式*/ }
原文地址:https://www.cnblogs.com/xuerong/p/6102292.html