搜索
查看: 1472|回复: 2

如果禁止web打开js链接时弹出保存窗口?

[复制链接]

16

主题

90

帖子

675

积分

三级会员

Rank: 4

积分
675
QQ
发表于 2015-12-21 11:26:55 | 显示全部楼层 |阅读模式
本帖最后由 lm752213730 于 2015-12-21 11:28 编辑

有时候写一些web模拟操作的程序,如果操作过程中误点击了页面里面的js链接,就会弹出保存窗口,可能软件就停留在这了,如果不让web弹出这个窗口呢?看源码。

1.开个监控线程,发现窗体立即关闭
2.拦截,强制跳转
3.可能还有更好的办法,只是我不知道而已


  1. import win.ui;
  2. /*DSG{{*/
  3. mainForm = ..win.form(text="aardio form";right=599;bottom=399)
  4. mainForm.add(
  5. static={cls="static";text="static";left=19;top=31;right=581;bottom=346;transparent=1;z=1}
  6. )
  7. /*}}*/

  8. io.open();
  9. import web.form;
  10. var wb=web.form( mainForm.static );

  11. /*方法一,模拟点击,坏处是下载窗口会闪一下{{*/
  12. jiankong=function(){
  13.         import winex;
  14.         import process;
  15.         while(win.delay(1)){
  16.                 窗口句柄, ,线程ID,进程ID = winex.findExists( "文件下载 ","要打开还是保存此文","\#\d+","Static" );
  17.                 var mypid=process.getId();
  18.                 if(窗口句柄&&mypid==进程ID){//如果弹出的下载提示框是自己的进程,才去关闭,以免影响其他程序
  19.                         io.print(窗口句柄,进程ID,process.getId())
  20.                         winex.close(窗口句柄);       
  21.                 }
  22.         }       
  23. }
  24. import thread;
  25. //thread.create(jiankong);//开启监控线程
  26. /*}}*/

  27. /*方法二,拦截后强制跳转,不闪{{*/
  28. wb.NavigateError = function(pDisp,url,target,statusCode,cancel)  {
  29.         //主意:不要跳转到js页面,否则进入死循环
  30.         io.print("url",url)
  31.           //owner.go(wb.location);//跳转到之前页面
  32.           owner.go("http://www.baidu.com");//跳转到指定页面
  33.         return wb.location,target,statusCode,false;
  34. };
  35. /*}}*/

  36. //打开目标网站
  37. wb.html = /**
  38. <!doctype html>
  39. <html>
  40. <head>

  41. </head>
  42. <body>
  43. 123<br><a href='http://www.xundavpn.com/images/jquery-1.4.4.min.js'>我是一个js连接</a><br>456
  44. 123<br><a href='http://bbs.csdn.net/topics/390966361'>点我</a><br>456
  45. </body>
  46. </html>
  47. **/

  48. mainForm.show()
  49. return win.loopMessage();

复制代码
回复

使用道具 举报

30

主题

695

帖子

4178

积分

超级版主

Rank: 8Rank: 8

积分
4178
发表于 2015-12-21 13:56:13 | 显示全部楼层

有这些疑问可以直接看web.form的函数说明、或者[url=http://bbs.aardio.com/doc/reference/web/event.htm

有这些疑问可以直接看web.form的函数说明、或者帮助文档。或者参考MSDN
wb.translate = function( url ){
   
owner.translateUrl = url;  
}

wb.FileDownload =
function( activeDocument ) {  
   
if(!activeDocument) return true;  
}
  


回复

使用道具 举报

16

主题

90

帖子

675

积分

三级会员

Rank: 4

积分
675
QQ
 楼主| 发表于 2015-12-21 14:12:10 | 显示全部楼层

[quote][size=2][url=forum.php?mod=redirect&goto=findpost&pid=70496&ptid=13172][c

quicker 发表于 2015-12-21 13:56
有这些疑问可以直接看web.form的函数说明、或者帮助文档。或者参考MSDN

谢谢指导
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2018-12-15 18:23 , Processed in 0.062500 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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