MCPcopy
hub / github.com/emacs-eaf/emacs-application-framework / execute_javascript

Method execute_javascript

core/webengine.py:791–818  ·  view source on GitHub ↗

Execute JavaScript.

(self, script_src)

Source from the content-addressed store, hash-verified

789 QWebEnginePage.__init__(self, profile)
790
791 def execute_javascript(self, script_src):
792 ''' Execute JavaScript.'''
793 try:
794 if hasattr(self, "loop") and self.loop.isRunning():
795 # NOTE:
796 #
797 # Just return None is QEventLoop is busy, such as press 'j' key not release on webpage.
798 # Otherwise will got error 'RecursionError: maximum recursion depth exceeded while calling a Python object'.
799 #
800 # And don't warry, API 'execute_javascript' is works well for programming purpse since we just call this interface occasionally.
801 return None
802 else:
803 # Build event loop.
804 self.loop = QEventLoop()
805
806 # Run JavaScript code.
807 self.runJavaScript(script_src, self.callback_js)
808
809 # Execute event loop, and wait event loop quit.
810 self.loop.exec()
811
812 # Return JavaScript function result.
813 return self.result
814 except:
815 import traceback
816 traceback.print_exc()
817
818 return None
819
820 def callback_js(self, result):
821 ''' Callback of JavaScript, call loop.quit to jump code after loop.exec.'''

Callers 1

execute_jsMethod · 0.80

Calls

no outgoing calls

Tested by

no test coverage detected