Fixed the handling of 'javascript' schemes in the web browser. 5_0_x

Sun, 19 Dec 2010 13:17:35 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 19 Dec 2010 13:17:35 +0100
branch
5_0_x
changeset 756
49b238881de5
parent 749
35c614c84e23
child 760
7afcbff16f75

Fixed the handling of 'javascript' schemes in the web browser.

Helpviewer/HelpBrowserWV.py file | annotate | diff | comparison | revisions
--- a/Helpviewer/HelpBrowserWV.py	Sun Dec 12 17:22:55 2010 +0100
+++ b/Helpviewer/HelpBrowserWV.py	Sun Dec 19 13:17:35 2010 +0100
@@ -164,6 +164,11 @@
         self.__lastRequest = request
         self.__lastRequestType = type_
         
+        scheme = request.url().scheme()
+        if scheme in ["mailto", "ftp"]:
+            QDesktopServices.openUrl(request.url())
+            return False
+        
         return QWebPage.acceptNavigationRequest(self, frame, request, type_)
     
     def populateNetworkRequest(self, request):
@@ -441,10 +446,9 @@
                     """ for URL <b>{0}</b>.</p>""").format(name.toString()))
             return
         elif name.scheme() == "javascript":
-            scriptSource = name.toString()[11:]
-            res = self.page().mainFrame().evaluateJavaScript(scriptSource)
-            if res:
-                self.setHtml(res)
+            scriptSource = QUrl.fromPercentEncoding(name.toString(
+                QUrl.FormattingOptions(QUrl.TolerantMode | QUrl.RemoveScheme)))
+            self.page().mainFrame().evaluateJavaScript(scriptSource)
             return
         else:
             if name.toString().endswith(".pdf") or \

eric ide

mercurial