# aardio 范例: web.view( WebView2 浏览器控件) - 拦截弹窗



```aardio
//web.view( WebView2 浏览器控件) - 拦截弹窗
import win.ui;
/*DSG{{*/
var winform = win.form(text="web.view - 拦截网页弹窗";right=818;bottom=507)
winform.add()
/*}}*/

import web.view; 
var wb = web.view(winform);

//弹出新窗口触发
wb.onNewWindow = function(url){
	
	//耗时操作应返回异步自动执行的函数（提前结束 onNewWindow ）
	return function(){ 
		/*
		判断打开的是否 file: 前缀网址，例如拖放文件到网页上。
		*/
 		var filePath = inet.url.getFilePath(url)
 		if(filePath){
 			winform.msgbox(filePath,"本地文件"); 	
 			/*
 			网页虽然能处理文件拖放，但没有权限获取本地文件路径。
 			所以在 JS 的 drop 事件中如果不调用 e.preventDefault()，
 			则会默认执行到这里通过 aardio 就可以直接获取拖放的源文件路径。
 			
 			请参考 WebDAV 拖拽上传: https://www.aardio.com/zh-cn/docs/examples/Web/DAV/client.ui.html
 			*/
 		}
 		else {
 		 	//用 wb.location 代替 wb.go 跳转网页则当前页面设为 HTTP referrer 请求头。 
			wb.location = url;
 		} 
 	}
}
 
wb.html = /**
<!doctype html>
<html><head>
<base target="_blank" />
</head>

<body style="margin:50px">
<a href="http://www.aardio.com">aardio.com</a>
<button onclick="window.open('http://www.aardio.com')" >aardio.com</button>
**/

winform.show();
win.loopMessage();
```

