帆软中设置网页参数超链接时,有中文参数怎么传

JavaScript036

帆软中设置网页参数超链接时,有中文参数怎么传,第1张

这个问题的话可以使用cjkEncode对中文进行编码转换

加载finereport.js使用cjkEncode

cjkEncode方法在FineReport的JS库中已经预先提供了,用户可以在自己的网页中引入FineReport的JS库,就可以使用FR.cjkEncode对中日韩文字符进行编码,如下对调用报表的url进行cjkEncode:

<html>  

  <head>  

  <title>FineReport Demo</title>  

  <meta http-equiv="Content-Type" content="text/html charset=GBK" />  

  <script type="text/javascript" src="/WebReport/ReportServer?op=emb&resource=finereport.js"></script>

  <script language="javascript">

    function autoLoad(){

      var addr = FR.cjkEncode("/WebReport/ReportServer?reportlet=/doc/Primary/Parameter/Parameter.cpt&地区=华东")

      document.getElementById("reportFrame").src = addr

    }

    window.onload = autoLoad 

  </script>

  </head>  

  <body>  

    <iframe id="reportFrame" width="900" height="400" ></iframe>  

  </body>

</html>

直接调用cjkEncode

加载finereport.js再引用cjkEncode,一方面可能会引起js冲突,另一方面也加载了很多不必要的方法。

若用户只需要使用该方法,可以将cjkEncode实现的代码复制到网页中或者用户自己的js文件中,然后再引用cjkEncode。

<html>

  <head>  

  <title>FineReport Demo</title>  

  <meta http-equiv="Content-Type" content="text/html charset=GBK" />  

  <script type="text/javascript">

    //cjkEncode方法的实现代码,放在网页head中或者用户自己的js文件中

    function cjkEncode(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       

    }   

    function autoLoad() {

      var addr = cjkEncode("/WebReport/ReportServer?reportlet=/doc/Primary/Parameter/Parameter.cpt&地区=华东")

      document.getElementById("reportFrame").src = addr

    }

    window.onload = autoLoad           //加载网页时调用autoLoad方法

  </script>

  </head>  

  <body>  

    <iframe id="reportFrame" width="900" height="400" ></iframe>  

  </body>  

</html>

楼主说的js对象是指控件本身吗?

是的话参考这个

var ss=this.options.form.getWidgetByName("参数控件名称")

ss就为控件对象