搜索
查看: 1305|回复: 10

wb控制window.showModalDialog打开的模态窗口节点?

[复制链接]

15

主题

39

帖子

253

积分

二级会员

Rank: 3Rank: 3

积分
253
发表于 2018-3-31 23:49:06 | 显示全部楼层 |阅读模式
碰到用window.showModalDialog打开的模态窗口,获取节点?
控制输入框和按钮

import win.ui;
import web.form;
/*DSG{{*/
mainForm = win.form(text="aardio form";right=708;bottom=430)
mainForm.add(
custom={cls="custom";text="custom";left=29;top=24;right=686;bottom=413;z=1}
)
/*}}*/

wb = web.form(mainForm.custom)
wb.noScriptErr=true;

wb.go("\res\showMsg1.html")


mainForm.enableDpiScaling();
mainForm.show();

return win.loopMessage();

//------------------------------------------------------------------
showMsg1.html 源码
<html>  
    <head>  
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
        <title>主窗口</title>  
        <script type="text/javascript">
        function oper()  
           {
                var zd = document.getElementById("txtReturnValue").value
                var address = window.showModalDialog("return.html?random="+Math.random(),zd,"dialogHeight: 170px; dialogWidth: 320px;help: no;status: no;resizable: no; scroll:no;unadorned:on");
                document.myform.txtReturnValue.value= address;  
            }  
        </script>
    </head>  
    <body>  
       <form name="myform" method="post">  
          <div>
              <div>
                  <input type="text" name="txtReturnValue" /><input type="button" name="xxx" value="子窗口" onclick="oper()" />
              </div>
          </div>
       </form>  
    </body>  
</html>

//------------------------------------------------------------------
return.html 源码
<html>  
   <head>
      <meta charset="utf-8">
      <Title>子窗口</Title>  
      <script type="text/javascript">
          function returntest()  
          {
                 window.returnValue = document.getElementById("jsvalue").value;  
              window.close();  
          }
          function jsnum()  
          {
              var aa = window.dialogArguments;
              document.getElementById("jsvalue").value = aa
          }
       </script>
   </head>  
   <body onload="jsnum()">
      <form name="subfrom"><br><br><br><br><br><br>
         <center>
            <input type="text" id="jsvalue" name="jsvalue" />
            <br>
            <input type="button" onClick="returntest()" value="确定" />
         </center>
      </form>  
   <body>  
<html>
回复

使用道具 举报

15

主题

39

帖子

253

积分

二级会员

Rank: 3Rank: 3

积分
253
 楼主| 发表于 2018-4-1 00:59:40 | 显示全部楼层

把截图放出来,想控制 子窗口里编辑框和按钮
回复

使用道具 举报

185

主题

2541

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
13973
发表于 2018-4-1 02:27:12 | 显示全部楼层
window.showModalDialog 你可以重写成你自己的JS函数,明白怎么弄了吗?!

回复

使用道具 举报

15

主题

39

帖子

253

积分

二级会员

Rank: 3Rank: 3

积分
253
 楼主| 发表于 2018-4-1 12:21:33 | 显示全部楼层
本帖最后由 ccbwx 于 2018-4-1 12:24 编辑

感谢Jacen.He Jacen 回复,js重写?
我在百度上看了找了一遍2014年的文章通过c++ 说明可以通知mshtml搞,



回复

使用道具 举报

15

主题

39

帖子

253

积分

二级会员

Rank: 3Rank: 3

积分
253
 楼主| 发表于 2018-4-1 12:22:21 | 显示全部楼层
c++换成 用aardio怎么写...............................................
回复

使用道具 举报

185

主题

2541

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
13973
发表于 2018-4-1 12:56:47 | 显示全部楼层
似乎你根本没看我的回复,即然回了也不看,也不思考,那我不用再回了
回复

使用道具 举报

185

主题

2541

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
13973
发表于 2018-4-1 13:55:31 | 显示全部楼层
其实答案我已经在aardio中给你准备好了,
代码都已经准备好了自动完成就可以输入。

但是你们就是喜欢直接写好,复制就可以跑的代码,
但是你们提问的时候,怎么就不这么想呢,都喜欢神神秘秘的只发一两句,或者根本就没代码。


import win.ui;
/*DSG{{*/
var winform = win.form(text="Web Form 拦截showModalDialog";right=759;bottom=469)
/*}}*/

import web.form;
var wb = web.form( winform );

wb.NavigateComplete2 =
function(pDisp, url) {
   
var js = /*
        function showModalDialog(url,arguments,features){
            alert("想弹?不让你弹" + url)
            return;
        }
        function showModelessDialog(url,arguments,features){
            alert("想弹?不让你弹" + url)
            return;
        }
    */

    wb.document.getScript().execScript(js);
}

winform.show()
wb.html =
/**
    <script type="text/javascript">
    window.showModalDialog("about:这是弹出的")
    </script>
   
    这是自己了
**/


//启动消息循环
win.loopMessage();

回复

使用道具 举报

185

主题

2541

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
13973
发表于 2018-4-1 13:56:12 | 显示全部楼层
ccbwx 发表于 2018-4-1 12:22
c++换成 用aardio怎么写...............................................

这都已经写好了,还在问怎么写,标准库里看 web.mshtml
回复

使用道具 举报

15

主题

39

帖子

253

积分

二级会员

Rank: 3Rank: 3

积分
253
 楼主| 发表于 2018-4-1 15:13:37 | 显示全部楼层
感谢Jacen,百忙之中,写的代码,我再消化消化

回复

使用道具 举报

6

主题

100

帖子

716

积分

三级会员

Rank: 4

积分
716
发表于 2018-4-1 22:11:19 | 显示全部楼层
小白表示没看懂。web.mshtml里没有NavigateComplete2

在web.form 里面倒是发现了。
回复

使用道具 举报

12

主题

679

帖子

4008

积分

荣誉会员

子非魚、安知魚之樂

Rank: 8Rank: 8

积分
4008
发表于 2018-4-1 22:24:39 | 显示全部楼层
lvhoo 发表于 2018-4-1 22:11
小白表示没看懂。web.mshtml里没有NavigateComplete2

在web.form 里面倒是发现了。

你张冠李戴 看得懂就见鬼了
让看标准库的是 回答c++ mshtml 那篇论文
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

手机版|未经许可严禁引用或转载本站文章|站长邮箱|aardio.com|aardio官方社区 ( 皖ICP备09012014号 )

GMT+8, 2018-10-20 04:19 , Processed in 0.062500 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表