private void WebBrowserOnNewWindow(object sender, CancelEventArgs e)
{
dynamic browser = sender;
dynamic activeElement = browser.Document.activeElement;
var link = activeElement.ToString(); // 这儿是在新窗口中打开,如果要在内部打开,改变当前browser的Source就行了
if (Regex.Match(link,@"http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?").Success)//判断该网址是否为有效网址
{
CreateNewTab(new Uri(link));
MessageBox.Show(link);
}
else
{
MessageBox.Show(link);
}
e.Cancel = true;
}这段代码是在画板上打开一个浏览器后点击浏览器里面的内容执行的如我点击百度中的视频
主要是看link能不能取到正确的地址
在我点击一个具体的视频或者图片时,有时候会取到该视频或图片的url但有时则返回object
纠结。求解惑
解决方案 »
- xml 中判断属性是否存在
- 怎样制作窗口弹出效果?
- winform中使用vlc
- 弱弱的求C#开发人员的KPI
- 通过win服务在局域网其它机器上,创建目录出现System.UnauthorizedAccessException异常
- 关于Response的问题
- JavaScript改写成C#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- 我使用c#当网页,如何在URL中加入用户和密码信息
- 请问如何隐藏DataView (或DataGrid) 中的一个字段?
- 哪位大虾知道如何输入汉字就可以得到他的拼音啊!
- 请问谁用过pdf.setZoomScroll(float a,float b,float c)方法
- 请问怎么防止长按一个键重复触发OnKeyDownEven里的语句
不太明白,很想知道这个返回的是什么东东?
你得把这个link 当做是一个links 来操作, 其实你可以做个例子 msg一下, 你打出来 link.ToString() 有二种情况一个显示出来一个URL地址, 另外一种会是显示 system.xxxxx 弹出来的是一个对象的引用
再对症下药
新建一个选项卡 ? 新建的选项卡的链接地址是 link 这个变量!
再筛选出object类型时的情况
//这里有一个潜在问题,如果是<a href="http://.../>就没问题,但如果是
//<object data="http://www.123.com/1.flv?.... >
//<param name="src" value="http://www.123.com/1.flv?...." />
//</object>照样也能匹配成功,下面可以按照需要改一下,类似这样
Match mc = Regex.Match(link,@"http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?");
if (mc.Success)//判断该网址是否为有效网址
{
CreateNewTab(new Uri(mc.Value)); //Match.Value就是匹配到的值了,也可以取某个分组
MessageBox.Show(link);
}
var link = activeElement.ToString();CreateNewTab(New Uri(Link));
有区别么
这个本来就是object类型吧。
如果判断他不是 url类型 ,应该另找方法获取
MessageBox.Show(link);