python调用网页js打开视频_python调用html内的js方法

这方面资料不多,不懂html,不懂js,略懂python的我,稍微看了点html和js,好几天的摸索,终于测试成功了。

PYQT+HTML利用PYQT的webview调用JS内方法

1.python调用js需要使用webView.page().mainFrame().evaluateJavaScript()这个方法

2.这个方法需要制作信号和槽才能触发。

功能:python调用html内的js定位函数。实现在webview内显示定位

测试代码mainUI.py

# -*- coding: utf-8 -*-

# 作者:神秘藏宝室

from Ui_mainUI import Ui_Dialog

#添加

from PyQt4.QtCore import *

from PyQt4.QtGui import *

class MyBrowser(QDialog, Ui_Dialog):

"""

Class documentation goes here.

"""

def __init__(self, parent=None):

"""

Constructor

@param parent reference to the parent widget

@type QWidget

"""

QDialog.__init__(self, parent)

self.setupUi(self)

htmlfile = "gpsPoint.html"

url = QUrl(htmlfile)

self.webView.load(url)

self.webView.loadFinished.connect(self._plot)

print u"html载入"

# self.createConnection()

# def createConnection(self):

# # self.connect(self.pushButtonGo,SIGNAL("clicked"),self.on_pushButtonGo_clicked)

# self.pushButtonGo.clicked.connect(self.on_pushButtonGo_clicked)

@pyqtSlot(result="QString")

def _plot(self):

self.webView.page().mainFrame().evaluateJavaScript('theNewLocation(112.424483,34.640631);')

@pyqtSignature("")

def on_lineEditAddress_returnPressed(self):

"""

Slot documentation goes here.

"""

self.search()

@pyqtSignature("")

def on_pushButtonGo_clicked(self):

"""

Slot documentation goes here.

"""

self.search()

def search(self):

address = str(self.lineEditAddress.text())

if address:

if address.find('://') == -1:

address = 'http://' + address

self.lineEditAddress.setText(address)

url = QUrl(address)

self.webView.load(url)

if __name__ == "__main__":

import sys

app = QApplication(sys.argv)

mb = MyBrowser()

mb.show()

sys.exit(app.exec_())

gpsPoint.html文件

body, html{width: 100%;height: 100%;margin:0;font-family:"微软雅黑";}

#allmap{height:100%;width:100%;}

#r-result{width:100%; font-size:14px;}

经纬度定位

// 百度地图API功能

var map = new BMap.Map("allmap");

map.centerAndZoom(new BMap.Point(112.424483,34.640631), 15);//洛浦公园坐标

map.enableScrollWheelZoom(true);

//新建定位标准

// 用经纬度设置地图中心点

function theNewLocation(x,y){

alert('测试');

if(1){

map.clearOverlays();

var new_point = new BMap.Point(x,y);

var marker = new BMap.Marker(new_point); // 创建标注

map.addOverlay(marker); // 将标注添加到地图中

map.panTo(new_point);

//增加定位信息标注

map.centerAndZoom(new_point, 15);

var opts = {

width : 50, // 信息窗口宽度

height: 50, // 信息窗口高度

title : "我的最新位置" , // 信息窗口标题

enableMessage:true,//设置允许信息窗发送短息

message:"我就在这里哦~~~~"

}

var infoWindow = new BMap.InfoWindow("我确实就在这里!!!", opts); // 创建信息窗口对象

marker.addEventListener("click", function(){

map.openInfoWindow(infoWindow,new_point); //开启信息窗口

});

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值