以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  webkit更改target  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=107722)

--  作者:新航程小何
--  发布时间:2017/10/8 17:25:00
--  webkit更改target
这是foxtable自带的浏览器修改target的方法
Public Sub web_DocumentCompleted(sender As object, e As windows.forms.WebBrowserDocumentCompletedEventArgs)
For Each archor As object In sender.Document.Links
    archor.SetAttribute("target", "_self")
Next
MessageBox.show("target被改了")
End Sub

我在用webkit,使用同样的方法去修改,不执行此以上代码?请问老师我应该怎么处理呢?

我现在的一种解决思路是:
Dim web As new WebKit.WebKitBrowser
web.Dock = Windows.Forms.DockStyle.fill
web.Navigate(url)

For Each archor As object In web.Document.links
    archor.SetAttribute("target", "_self")
Next

结果出错了,提示webkit.Dom.Document没有links,所以我想知道我应该怎么修改呢?请老师教教


--  作者:有点甜
--  发布时间:2017/10/8 17:32:00
--  

For Each archor As object In web.Document.getElementsByTagName("a")

 

或者你可以给其绑定 NewWindowCreated 事件

 

 


--  作者:新航程小何
--  发布时间:2017/10/8 17:41:00
--  
老师,我按照您的方法测试了一下,不行,提示如下错误

图片点击可在新窗口打开查看此主题相关图片如下:qq截图20171008173901.png
图片点击可在新窗口打开查看

我打印了一下web.text结果,是空的。我估计问题出这了吧。这是怎么回事?


--  作者:有点甜
--  发布时间:2017/10/8 17:50:00
--  

应该是你页面没有加载完毕,试试

 

Do Until web.ReadyState = 4
    Application.DoEvents
Loop

 

For Each archor As object In web.Document.getElementsByTagName("a")

 

 

或者,你可以绑定事件的嘛,绑定事件和 webbrowser 是一样的。


--  作者:新航程小何
--  发布时间:2017/10/8 17:59:00
--  
老师,您说的第二种方法怎么实现?我试了第一种方法,提示无readyState的方法
--  作者:有点甜
--  发布时间:2017/10/8 18:02:00
--  

参考

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=73886&skin=0

 


--  作者:新航程小何
--  发布时间:2017/10/8 18:05:00
--  
老师,我就是参考这个的,不过呢,这个案例是foxtable内置的浏览器控件,我用的是webkit,在使用过程中遇到的问题。老师您看能帮我解决一下吗?这问题困扰我很久了


--  作者:有点甜
--  发布时间:2017/10/8 18:08:00
--  

 绑定事件,是一样的代码,请认真测试。


--  作者:新航程小何
--  发布时间:2017/10/8 18:29:00
--  
老师,这个我真的没弄出来,您可以试一下,webkit的似乎太一样。我很早前就困扰这个问题。


--  作者:有点甜
--  发布时间:2017/10/8 19:25:00
--  
以下是引用新航程小何在2017/10/8 18:29:00的发言:
老师,这个我真的没弄出来,您可以试一下,webkit的似乎太一样。我很早前就困扰这个问题。

 

一模一样。你做的时候报什么错?贴出你写的代码。