showModalDialog()向子窗口传自定义参数(javascript提取url参数)及其他

事情是这样子的。

今天下午我正刷果壳刷的不亦乐乎,突然需求就下来了。

它!就!这!么!下!来!了!

客户说,我们需要打开一个新窗口来进行模糊查询,然后选择一个查询结果回填到父窗口中。

valy easy。

然后我发现那个模糊查询的页面叫agentSearch.jsp

里面的内容是这样的

function backfill(){
    var val = document.getElementById("agentsearch").value;
    var parWin = window.dialogArguments;
    parWin.document.getElementById(" ").value = val;
    window.close();
}

咦为什么getElementById参数会是空的呢

不管了可能是上一个人没写完吧,那就让我来完成它!!!

有两个页面调用过它

createsettlementmanage_search.jsp

commissionsettlement.jsp

可能这两个页面需要的查询条件都差不多吧,反正都调了同一个页面不是么

你也是这么想的对吧?

呵呵。

我打开其中一个文件

呐就当我先打开的它吧

createsettlementmanage_search.jsp

...
function showAgentSearch(){
    var url = "<%=path%>/commission/agentSearch.jsp";
    var param = "dialogWidth:400px;dialogHeight:250px;help:no;unadorned:no;resizable:no;status:no";
    return window.showModalDialog(url,window,param);
}
...
...
<td class="pageCenter">代理人/经纪人:</td>
<td class="pageCenter">
    <input id="agentcode" name="agentcode" type="text" size="18">
    <input type="button" value=">" onclick="showAgentSearch()">
    <span style="color:#FF0000">*</span>
</td>
...

哎呦写得不错哦

呐既然id是agentcode呐在agentSearch.jsp里面我填上agentcode不就好了么

果真是上一个人没写完啊啧啧啧,究竟是有多着急的事情啊连这个id都不肯加上

然后我淡定的吧id给写了上去

parWin.document.getElementById("agentcode").value = val;	

结果成功跑出来了。

对啊你以为呢?

好了然后我打开了另一个文件

commissionsettlement.jsp

...
function showAgentSearch(){
    var url = "<%=path%>/commission/agentSearch.jsp";
    var param = "dialogWidth:400px;dialogHeight:250px;help:no;unadorned:no;resizable:no;status:no";
    return window.showModalDialog(url,window,param);
}
...
...
<td class="pageCenter">代理人/经纪人:</td>
<td class="pageCenter">
    <input id="agentname" name="agentname" type="text" size="18">
    <input type="button" value=">" onclick="showAgentSearch()">
    <span style="color:#FF0000">*</span>
</td>
...

哎呀一样的嘛,等我把东西交上去就...

等等

id为什么变成了agentname

卧槽。

怎么可以这样,人与人之间最基本的信任呢

接下来就是我们几个热烈讨论解决方案的时候了

我主张的是把agentSearch.jsp拷贝一份,改个参数,让一个文件调用这个agentSearch.jsp,另一个文件调用另一个agentSearch.jsp

简单粗暴。是的我就是这么不与世俗同流合污

龙哥说还有一种是用div直接在当前页面显示就好,正好省的烦开一个新页面了

用w2ui或者easyui的话顺路界面还能更漂亮呢不是

听起来好有道理,不过代码要大改

呵呵。

涛哥的意思是可以在showModalDialog()的时候传入一个参数parameter,当它是1的时候执行getElementById("agentcode"),当它是2的时候执行getElementById("agentname")

但是这个有一个重大问题就是,showModalDialog()只能传入三个参数sURL,vArguments,sFeatures

我说我们可以把参数放在vArguments里面啊多和谐啊水到渠成

龙哥说丫忘了我们还要回填了吧vArguments只能传父窗口的Object啊

然后涛哥说我觉得我们可以在url里面放一个参数,就像这样

agentSearch.jsp?parameter=1

我和龙哥同时对其机智表示赞许并表示党国的未来还是要靠你们

接下来就是实现了

那两个名字好长的文件只不过在url后面打个问号价格参数就不重新写了

是的我就是懒

现在只要改一下agentSearch.jsp就可以交差了

生活如此美好

<%String parameter=request.getParameter("parameter");%>
...
function backfill(){
    var val = document.getElementById("agentsearch").value;
    var parWin = window.dialogArguments;
    var parameter = <%=parameter%>;
    if (parameter == "1"){
        parWin.document.getElementById("agentcode").value = val;
    }else if (parameter == "2"){
        parWin.document.getElementById("agentname").value = val;
    }else{
        alert("呵(f**k)呵(you)。");
    }
    window.close();
}
...

先在上面用request.getParameter("parameter")获取到parameter的值

或者1或者2

当然了在不可抗力的作用下有可能产生一些奇怪的结果

比如说断电了

然后 var parameter = <%=parameter%>; 是将参数赋值到javascript脚本中

接下来就是执行判断了

1的话这样

parWin.document.getElementById("agentcode").value = val;

2的话这样

parWin.document.getElementById("agentname").value = val;

其他的话乱入请不要介意

那这样的话任务就算完成了

在这里我只想对那个写这份代码的前一个同学说

You silly B!

hui duan!

shen me gui!

ni ma 【哔-】!

son of bick!

There‘s a fire starting in my heart~ Reaching a fever piss and it‘s bringing me out the dark~

Done.

时间: 2024-11-09 03:00:48

showModalDialog()向子窗口传自定义参数(javascript提取url参数)及其他的相关文章

父窗口window.showModalDialog传值 子窗口window.returnValue返回值

父窗口打开子窗口页面: var fatherWindow = document.all.dealReason;//想传的值 win = window.showModalDialog(strUrl, fatherWindow, "dialogWidth=800px;dialogHeight=600px;"); //strUrl是子窗口页面,fatherWindow是想传的值,win是子窗口返回的值document.all.dealReason.value = win; 子窗口: var

javascript获取url参数代码实例

javascript获取url参数代码实例: 有时候可能需要获取url中的参数值,下面是一段相关的代码实例. 代码如下: var url="www.softwhy.com/test.php?id=21&a=5"; if(url.indexOf("?")!=-1) { var p=url.indexOf("?"); //返回所在位置 var str = url.substr(p+1) //从这个位置开始截取 strs = str.split

用JavaScript获取URL参数的方法之一

若地址栏URL为:abc.html?m=tomms&c=allsearchlist&pageNo=1&pageNum=20&text=1 1 <script> 2 //JavaScript获取url,并把url中的参数变成数组的方法,arr数组的值就是各参数值 3 var url = window.document.location.href.toString(); 4 var u = url.split("?"); 5 var arr =

JavaScript获取URL参数方法总汇

现在做页面基本都用AJAX,因此导致操作很麻烦,每次都需要通过JS获取url中的参数值,网上所搜到很多资料,没一次能记住的,也不知道在哪个项目中使用过,现在又需要通过JS获取url参数,因此不能在偷懒了,为了方便自己也得做个资料总汇,不然每次都得找费事费力的,得不偿失.下边就列出老外所有通过JS获取url参数的方法(不断更新): 1.http://stackoverflow.com/questions/1403888/get-url-parameter-with-jquery 2.http://

a标签跳页传参,以及截取URL参数

<a href="dd.index?aa=1&&bb=2"></a> //截取URL参数 // console.log(window.location.search); function GetQueryString(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); var r

如何用JavaScript提取URL中的用户信息

比如传递的URL为:http://localhost//a.html?username=aa&password=12,如何用JavaScript提取其中的username和password数据呢?具体方法参考[1]如下所示: 1 function getQueryStringArgs() { 2 // 取得查询字符串并去掉开头的问好 3 var qs = (location.search.length > 0 ? location.search.substring(1) : "&q

vue--父组件向子组件传参--父组件定义v-bind:参数名--子组件接收props----子组件调用父组件的方法(子组件向父组件传参)父组件@事件名称--子组件接收this.$emit

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" con

javascript获取url参数

<script type="text/javascript"> //获取QueryString的数组 function getQueryString() {     var result = location.search.match(new RegExp("[\?\&][^\?\&]+=[^\?\&]+", "g"));     if (result == null) {         return &qu

一个简单的javascript获取URL参数的代码

1 function request(paras){ 2 var url = location.href; 3 var paraString = url.substring(url.indexOf("?")+1,url.length).split("&"); 4 var paraObj = {} 5 for (i=0; j=paraString[i]; i++){ 6 paraObj[j.substring(0,j.indexOf("="