帆軟用工具測試超鏈接打開彈窗(iframe嵌套),解決js傳參帶中文傳遞有亂碼問題


1、新建超鏈接

隨意點擊一個單元格右擊,選擇 超級鏈接 

2、在彈出的窗口中選擇JavaScript腳本 如圖:

其中紅框框出的是幾個要點   ,左邊的就不講了,右上角的參數cc是設置了公式remoteServletURL  能自動獲取報表路徑 如圖:

右下角的js代碼是設置一個iframe彈窗,代碼如下:

1 var url =FR.cjkEncode("?formlet=indicatorDetailedTypeFirst.frm&companycode=0102010101&intermediarycode=0201072911&name=趙振強");
2 var iframe = $("<iframe id='inp' name='inp' width='100%' height='100%' scrolling='yes' frameborder='0'>"); // 對話框內 iframe 參數的命名,默認寬高占比是 100%,可向下滾動    
3 iframe.attr("src", cc+url);
4 //iframe.attr("src", cc+"?formlet=indicatorDetailedTypeFirst.frm&name=趙振強"); // 給 iframe 添加 src 屬性  
5 var o = {    
6 width : 700,  //對話框寬度  
7 height: 500  //對話框高度  
8 };    
9 FR.showDialog("添加", o.width, o.height, iframe,o);//彈出對話框

其中需要注意的是如果參數中有 中文需要將url包裹在編碼FR.cjkEncode()里,否則傳參中的中文將會是亂碼:如圖

 

 

需要注意的是:如果放到工程js中會報FR沒定義,我找了半天沒找到怎么引入帆軟的js,網上百度看到有人貼出了cjkEncode的源碼,直接加到js方法中調用即可

$.GPageModule([""],function(){
    var modelType = "indicatorDetailedTypeFirst.frm";
    var companycode = $("#companycode").val();
    var intermediarycode =$("#intermediarycode").val();
    var name =$("#name").val();
    var reportURL = cjkEncodeNew(GlobalParam.context+"/ReportServer?formlet=erm/sj/"+modelType+"&companycode="+companycode+"&intermediarycode="+intermediarycode+"&name="+name);
    $("#viewIndicatorDetailedType").attr("src",reportURL);
});

function cjkEncodeNew(text) {
    if (text == null) {
        return "";
    }
    var newText = "";
    for (var i = 0; i < text.length; i++) {
        var code = text.charCodeAt (i);
        if (code >= 128 || code == 91 || code == 93) {//91 is "[", 93 is "]".
            newText += "[" + code.toString(16) + "]";
        } else {
            newText += text.charAt(i);
        }
    }
    return newText;
}

 

 原創總結。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM