zoukankan      html  css  js  c++  java
  • 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页签增加样式*/ }
  • 相关阅读:
    容器跨主机网络通信学习笔记(以Flannel为例)
    Kubernetes控制器Job和CronJob
    记一次使用Flannel插件排错历程
    Kubernetes控制器Deployment
    Kubernetes如何通过StatefulSet支持有状态应用?
    react18 来了,我 get 到...
    gojs 实用高级用法
    vuecli3 vue2 保留 webpack 支持 vite 成功实践
    calibre 报错 This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem. 解决
    unable to recognize "*.yaml": no matches for kind "RoleBinding" in version "rbac.authorization.k8s.io/v1beta1"
  • 原文地址:https://www.cnblogs.com/xuerong/p/6102292.html
Copyright © 2011-2022 走看看