import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtWebEngineWidgets import QWebEngineView
class MainWindow(QDialog):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
self.setWindowTitle('My Browser')
self.setGeometry(100, 100, 400, 400)
self.button = QPushButton("get")
self.webview = QWebEngineView()
self.layout = QVBoxLayout()
self.setLayout(self.layout)
self.webview.setHtml("""
<html>
<head>
<title> My browser </title>
</head>
<body>
<label for="number">number:</label>
<input type="text" name="number" id="number">
<p />
<input type="text" name="lab" id="labnumber">
</body>
<ml>
""")
self.layout.addWidget(self.webview)
self.layout.addWidget(self.button)
self.button.clicked.connect(self.complete_name)
def complete_name(self):
js_string = '''
function myFunction()
{
var number = document.getElementById('number').value;
document.getElementById('labnumber').value = number;
return number;
}
myFunction();
'''
self.webview.page().runJavaScript(js_string, self.js_callback)
def js_callback(self, result):
print(result)
if __name__ == "__main__":
app = QApplication(sys.argv)
w = MainWindow()
w.show()
sys.exit(app.exec_())
'''
【简介】
QWebView中网页调用JavaScript
'''
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton
from PyQt5.QtWebEngineWidgets import QWebEngineView
import sys
app = QApplication(sys.argv)
win = QWidget()
win.setWindowTitle('Web页面中的JavaScript与 QWebEngineView交互例子')
layout = QVBoxLayout()
win.setLayout(layout)
view = QWebEngineView()
view.setHtml('''
<html>
<head>
<title>A Demo Page</title>
<script language="javascript">
// Completes the full-name control and
// shows the submit button
function completeAndReturnName() {
var fname = document.getElementById('fname').value;
var lname = document.getElementById('lname').value;
var full = fname + ' ' + lname;
document.getElementById('fullname').value = full;
document.getElementById('submit-btn').style.display = 'block';
return full;
}
</script>
</head>
<body>
<form>
<label for="fname">First name:</label>
<input type="text" name="fname" id="fname"></input>
<br />
<label for="lname">Last name:</label>
<input type="text" name="lname" id="lname"></input>
<br />
<label for="fullname">Full name:</label>
<input disabled type="text" name="fullname" id="fullname"></input>
<br />
<input style="display: none;" type="submit" id="submit-btn"></input>
</form>
</body>
</html>
''')
button = QPushButton('设置全名')
def js_callback(result):
print(result)
def complete_name():
view.page().runJavaScript('completeAndReturnName();', js_callback)
button.clicked.connect(complete_name)
layout.addWidget(view)
layout.addWidget(button)
win.show()
sys.exit(app.exec_())