--- a/WebBrowser/Tools/WebHitTestResult.py Sun Jun 26 21:29:18 2016 +0200 +++ b/WebBrowser/Tools/WebHitTestResult.py Sat Jul 02 14:54:14 2016 +0200 @@ -36,6 +36,7 @@ self.__isMediaPaused = False self.__isMediaMuted = False self.__pos = QPoint(pos) + self.__baseUrl = QUrl() self.__alternateText = "" self.__boundingRect = QRect() self.__imageUrl = QUrl() @@ -67,6 +68,7 @@ return window.getSelection().containsNode(e, true); }} var res = {{ + baseUrl: document.baseURI, alternateText: e.getAttribute('alt'), boundingRect: '', imageUrl: '', @@ -104,6 +106,15 @@ """.format(self.__viewportPos.x(), self.__viewportPos.y()) self.__populate(page.url(), page.execJavaScript(script)) + def baseUrl(self): + """ + Public method to get the base URL of the page. + + @return base URL + @rtype QUrl + """ + return self.__baseUrl + def alternateText(self): """ Public method to get the alternate text. @@ -242,6 +253,7 @@ if not res: return + self.__baseUrl = QUrl(res["baseUrl"]) self.__alternateText = res["alternateText"] self.__imageUrl = QUrl(res["imageUrl"]) self.__isContentEditable = res["contentEditable"] @@ -261,6 +273,6 @@ if not self.__imageUrl.isEmpty(): self.__imageUrl = url.resolved(self.__imageUrl) if not self.__linkUrl.isEmpty(): - self.__linkUrl = url.resolved(self.__linkUrl) + self.__linkUrl = self.__baseUrl.resolved(self.__linkUrl) if not self.__mediaUrl.isEmpty(): self.__mediaUrl = url.resolved(self.__mediaUrl)