WebBrowser/Tools/Scripts.py

branch
QtWebEngine
changeset 4725
b19ff70ba509
child 4726
c26e2a2dc0cb
equal deleted inserted replaced
4717:5841f229baf7 4725:b19ff70ba509
1 # -*- coding: utf-8 -*-
2
3 # Copyright (c) 2016 Detlev Offenbach <detlev@die-offenbachs.de>
4 #
5
6 """
7 Module containing function to generate JavaScript code.
8 """
9
10 from __future__ import unicode_literals
11
12 from .WebBrowserTools import readAllFileContents
13
14
15 def setupWebChannel():
16 """
17 Function generating a script to setup the web channel.
18
19 @return script to setup the web channel
20 @rtype str
21 """
22 source = """
23 (function() {{
24 {0}
25
26 function registerExternal(e) {{
27 window.external = e;
28 if (window.external) {{
29 var event = document.createEvent('Event');
30 event.initEvent('_eric_external_created', true, true);
31 document.dispatchEvent(event);
32 }}
33 }}
34
35 if (self !== top) {{
36 if (top.external)
37 registerExternal(top.external);
38 else
39 top.document.addEventListener(
40 '_eric_external_created', function() {{
41 registerExternal(top.external);
42 }});
43 return;
44 }}
45
46 new QWebChannel(qt.webChannelTransport, function(channel) {{
47 registerExternal(channel.objects.eric_object);
48 }});
49
50 }})()"""
51
52 return source.format(readAllFileContents(":/javascript/qwebchannel.js"))
53
54
55 def setStyleSheet(css):
56 """
57 Function generating a script to set a user style sheet.
58
59 @return script to set a user style sheet
60 @rtype str
61 """
62 source = """
63 (function() {{
64 var css = document.createElement('style');
65 css.setAttribute('type', 'text/css');
66 css.appendChild(document.createTextNode('{0}'));
67 document.getElementsByTagName('head')[0].appendChild(css);
68 }})()"""
69
70 style = css.replace("'", "\\'").replace("\n", "\\n")
71 return source.format(style)

eric ide

mercurial