要传参数的页面
引用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页签增加样式*/ }