• 网页弹出窗附带参数的实现


         工程中有很多地方需要用到弹出窗体,而这些窗体不仅仅只是弹出一张静态界面,需要附加参数我们都知道window.open()函数就是jsp里弹出窗体的函数,下面利用这个函数用两种方法实现弹出带参数的窗体。之前也写过一个,但表述不够清楚,这里重新整理了下发表出来

      第一种适用于访问后台但不向后台传递参数的方法。js函数简单的一句话就可以实现:

      function ShowAppCenter(){
      window.open("appresume","showAppResume",'height=550, width=650, top=100, left=300, toolbar=no,' +
      'menubar=no,scrollbars=no,resizable=no,location=no,status=no,alwaysRaised=yes,titlebar=no,toolbar=no,alwaysRaised=yes');
      }

      这里的"appresume" 代之struts2 里面action的名字,我们知道struts2 的action 会具体映射java类的某一方法,因此通过这个映射我们访问后台后再根据struts2的返回配置

    result 就可以实现访问后台后跳转我们的目的界面。struts2 配置展示如下:

        <action name="appresume" class="com.hrbourse.application.action.InitAppAction"
        method="showAppResume">
        <result >/WEB-INF/applicant/resume_centre/AppResume.jsp</result>
        <result name="test">error.jsp</result>
       </action>

       我们在InitAppAction 这个类里面可以做一些查询或者删除的工作,然后跳转到AppResume.jsp这个前台界面,这样我们就可以在跳转到的界面AppResume.jsp显示需要的数据了。

        第二种使用于访问后台并且向后台传递参数,第二种方法原理是在js 函数里面构造表单 以及模拟表单提交的方式提交到后台处理类,然后根据返回结果返回我们想要跳转到的界面。

    function addEduSpe1(indid){
        var tempForm = document.createElement("form");    
         tempForm.id="tempForm1";    
         tempForm.method="post";    
         tempForm.action="${pageContext.request.contextPath}/skiptochangeind.action";    
         tempForm.target="offer";   
         var hideInput = document.createElement("input");    
         hideInput.type="hidden";    
         hideInput.name= "indid"  
         hideInput.value= indid;  
         tempForm.appendChild(hideInput);     
         document.body.appendChild(tempForm);    
          $("#tempForm1").bind("submit",function(){
         openIndWindows();
             });
           $("#tempForm1").submit();
         document.body.removeChild(tempForm);  
            
    }
    function openIndWindows(){
         window.open('',"offer",'height=550, width=950, top=100, left=300, toolbar=no,' +
         'menubar=no,scrollbars=no,resizable=no,location=no,status=no,alwaysRaised=yes,titlebar=no,toolbar=no,alwaysRaised=yes');  
    }

      这里需要使用两个方法,addEduSpe1(inid),这个方法点击触发的直接方法,这里就构造了一个form 表单“tempForm ”注意参数  tempForm.target="offer";   该

    “offer”为弹出窗体句柄,这个句柄和回调方法 openIndWindows()中window.open()中的第2个参数保持一致。这里构造隐藏域hideInput,设置其值为所要传递的参数,name为与后台对应的属性,绑定提交事件触发的回调函数,也就是打开窗体的函数openIndWindows,之后模拟提交,注意这里采用jquery的方式是为了兼容浏览器的需要,因此调用这个函数之前需要引入jquery插件。window.open()最后的参数是设置所弹出窗体的样式,具体参数的对应可以从网上查询。

         

  • 相关阅读:
    记一次性能优化经历
    把一个一中的字段更新另一个表中的t-sql
    Dapper 中使用sql in 关键字查询
    HTML5 学习笔记 应用程序缓存
    HTML5学习笔记 Web存储
    HTML5 学习笔记 表单属性
    HTML5学习笔记 Geolocation(地理定位)
    vim插件之delimitMate.vim
    vim 插件之 surround.vim
    vim 脚本之快速打印log
  • 原文地址:https://www.cnblogs.com/wq123/p/3122733.html
Copyright © 2020-2023  润新知