pyqt5的runJavaScript 使用模板
runJavaScript 的说明
QWebEnginePage 有一个 runJavaScript 方法,支持回调函数。
使用方法1
只运行JavaScript,没有回调
def run_js(self): js_string = ''' alert("hello,world!"); ''' self.webview.page().runJavaScript(js_string)
使用方法2
运行JavaScript,并存在回调
def run_js2(self): js_string = ''' function myFunction() { return document.body.scrollWidth; } myFunction(); ''' self.webview.page().runJavaScript(js_string , self.js_callback) # 回调函数 def js_callback(self,result): print(result) QMessageBox.information(self, "提示", str(result))
完整代码,如下所示。
【如下代码,完全复制,直接运行,即可使用】
import sys from PyQt5.QtWidgets import * from PyQt5.QtCore import * from PyQt5.QtWebEngineWidgets import QWebEngineView ################################################ #######创建主窗口 ################################################ class MainWindow(QMainWindow): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.setWindowTitle('My Browser') self.showMaximized() #####放入WebEngineView self.webview = WebEngineView() self.webview.load(QUrl("https://www.baidu.com")) self.setCentralWidget(self.webview) #####web页面加载完毕,调用函数 self.webview.page().loadFinished.connect(self.run_js) self.webview.page().loadFinished.connect(self.run_js2) ########运行js脚本,没有回调######## def run_js(self): js_string = ''' alert("hello,world!"); ''' self.webview.page().runJavaScript(js_string) ########运行js脚本,有回调######## def run_js2(self): js_string = ''' function myFunction() { return document.body.scrollWidth; } myFunction(); ''' self.webview.page().runJavaScript(js_string , self.js_callback) # 回调函数 def js_callback(self,result): print(result) QMessageBox.information(self, "提示", str(result)) ################################################ #######创建浏览器 ################################################ class WebEngineView(QWebEngineView): windowList = [] # 重写createwindow() def createWindow(self, QWebEnginePage_WebWindowType): new_webview = WebEngineView() new_window = MainWindow() new_window.setCentralWidget(new_webview) #new_window.show() self.windowList.append(new_window) #注:没有这句会崩溃 return new_webview ################################################ #######程序入门 ################################################ if __name__ == "__main__": app = QApplication(sys.argv) w = MainWindow() w.show() sys.exit(app.exec_())
本文如有帮助,敬请留言鼓励。
本文如有错误,敬请留言改进。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
网站漏洞之apache环境S2-057漏洞 利用POC 远程执行命令漏洞复现
S2-057漏洞,于2018年8月22日被曝出,该Struts2 057漏洞存在远程执行系统的命令,尤其使用linux系统,apache环境,影响范围较大,危害性较高,如果被攻击者利用直接提权到服务器管理员权限,网站数据被篡改,数据库被盗取都会发生。 目前我们SINE安全对该S2-057漏洞的测试,发现受影响的版本是Apache Struts 2.3–ApacheStruts2.3.34、Apache Struts2.5–Apache Struts2.5.16等系列版本。官方Apache已经紧急的对该S2-057漏洞进行了修复。 通过国外曝出来的漏洞poc,我们来介绍下Struts2漏洞该如何的利用: S2-057漏洞产生于网站配置xml的时候,有一个namespace的值,该值并没有做详细的安全过滤导致可以写入到XML上,尤其url标签值也没有做通配符的过滤,导致可以执行远程代码,以及系统命令到服务器系统中去。 我们首先来搭建下struts2的环境,找一台windows服务器,使用一键部署工具部署好测试环境,vulhub环境也搭建好如下图: 接下来就是Struts2漏洞的利用与复现过...
- 下一篇
关于TensorFlow你需要了解的9件事
本文对近期在旧金山举办的谷歌Cloud Next大会上有关TensorFlow的一些特点进行了总结。 1、它是一个强大的机器学习框架 TensorFlow是一个基于数据流图的机器学习框架,它是Google Brain的第二代机器学习系统,常被应用于各种感知、语言理解、语音识别、图像识别等多项机器深度学习领域。Tensor(张量)代表了N维数组,Flow(流)代表了基于数据流图的计算。 如果你有足够多的数据,而且正处在人工智能的深度学习、神经网络、高级人工智能的阶段,那么它可能就会成为你最好的帮手了。TensorFlow不是一个工具,而是一个框架,假如你想通过20×2的电子表格返回一条回归线,那么现在你可以停止学习开始使用了。 当你想要得到的成就比较高端宏大,那么你就一定会兴奋了,TensorFlow已经被应用在太空领域来寻找新的行星,
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS6,CentOS7官方镜像安装Oracle11G
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2全家桶,快速入门学习开发网站教程
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8