WebBrowser/Tools/WebHitTestResult.py

changeset 5009
8b1ca3c1da22
parent 4925
6534062014dc
child 5389
9b1c800daff3
diff -r 31a1eb0f70e4 -r 8b1ca3c1da22 WebBrowser/Tools/WebHitTestResult.py
--- 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)

eric ide

mercurial