したがって、これが追加されるまで、私は JavaScript ソリューションを使用しました。これを行うには、javascript を使用して、Python コードで拒否されるページ変更イベントを作成します。
まず、ページが読み込まれるたびに、次の JavaScript を実行します (RunScript を使用)。
function hoverLink(link) {
window.location.href = "PROXY/HOVER_EVENT_START/" + link;
}
function hoverLinkEnd(link) {
window.location.href = "PROXY/HOVER_EVENT_END/" + link;
}
function setupHoverLinks(elem) {
elem.onmouseover = function() {
hoverLink(elem.href);
}
elem.onmouseout = function() {
hoverLinkEnd(elem.href);
}
}
// Loop through all links in the document and
// setup some event listeners.
links = document.getElementsByTagName("a");
for (var i = 0; i < links.length; i++) {
link = links[i].href;
setupHoverLinks(links[i]);
}
これにより、いずれかのページ リンクでマウス イン/マウス アウト イベントが発生するたびに、ページ変更イベントが発生します。URL の最後の部分には、関連するリンクが含まれています。
次に、EVT_WEB_VIEW_NAVIGATING イベントにフックし、カスタム ページの変更をキャッチして、ページ変更イベントを拒否します。
def OnPageNavigation(self, evt):
...
uri = evt.GetURL() # you may need to deal with unicode here
if "PROXY/HOVER_EVENT_START/" in uri:
# Simple way to get the link
link = uri.split("PROXY/HOVER_EVENT_START/")[1]
...
# Run your mouseover code
...
evt.Veto()
return
elif "PROXY/HOVER_EVENT_END/" in uri:
...
# Run your mouseout code
...
evt.Veto()
return
...