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条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Dcoker安装(在线仓库),最新的服务器搭配容器使用
- MySQL数据库在高并发下的优化方案
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS8编译安装MySQL8.0.19
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2整合Thymeleaf,官方推荐html解决方案