java窗口如何定时关闭_如何使用GreaseMonkey关闭定时弹出的窗口?
在某网站观看视频时,每隔一段时间会弹出一个问题,回答后才能继续观看,希望可以使用GreaseMonkey自动回答弹出的问题。
弹窗使用jQuery1.4.4的dialog弹出,弹出后可以使用下面的代码选择正确的答案。
document.querySelector('[qs=True]').click()
document.querySelector('#but_Question').click()
尝试使用
// ==UserScript==
// @name test_auto_close_dialog
// @namespace
// @include http://zjxy.ghlearning.com/Study/Learning/MediaLi?sscId=8f658a796db74a3ea9dde99e5a571534&medId=e4975f7a1a4e42768902bf35af23868c
// @version 1
// @grant none
// ==/UserScript==
$('.ui_main').bind('dialogopen',function(event){
document.querySelector('[qs=True]').click();
document.querySelector('#but_Question').click();
})
绑定弹出事件,但是没有取得预期的效果。请问是否有办法写一个脚本,以自动回答问题?
其中关于播放器的代码如下:
var LiPlayerPlayState = {};
LiPlayerPlayState.Stopped = 1;
LiPlayerPlayState.Paused = 2;
LiPlayerPlayState.Playing = 3;
LiPlayerPlayState.Ended = 8;
LiPlayerPlayState.Ready = 10;
LiPlayerPlayState.Reconnecting = 11;
var playerVideo = null;
var LiPlayer = function (containerId, _config) {
//针对800里流媒体播放学习
this.containerId = containerId;
this.config = {
onLoad: function () { },
onStoped: function () { },
onPaused: function () { },
onPlay: function () { },
onBuffering: function () { },
onBuffered: function () { },
onPositionChange: function (o, n) { },
onEnded: function () { },
onLoadError: function (message) { },
onLoadOverPlay: function () { },
width: "100%",
height: "100%",
resPath: "",
playerURL: "",
playSite: "",
playQuery: ""
};
$.extend(this.config, _config);
if (this.config.width != "100%") {
this.config.width += "px";
}
if (this.config.height != "100%") {
this.config.height += "px";
}
p2psr_embed("auto", "vod", this.config.playSite, this.config.playQuery, "p2ps_video", this.config.width, this.config.height, "10.1.0",
this.config.resPath + '/Files/expressInstall.swf', { auto_play: 1, no_light: 1, no_side_bar: 1, no_hide_skin: 1 }, { allowFullScreen: true, allowScriptAccess: "always", wmode: "transparent" }, {}, swfPlayerInit);
}
LiPlayer.prototype = {
load: function (url) {
},
play: function () {
playerVideo.resume();
},
pause: function () {
playerVideo.pause();
},
isPlaying: function () {
//getState(): 获取当前播放器的状态,"not_ready", "not_open", "playing", "pause", "end"
var state = playerVideo.getState();
if (state == "playing") {
return true;
}
else {
return false;
}
},
currentPosition: function () {
//获取当前播放时间, 单位秒
var vTime = playerVideo.getTime();
return Math.floor(vTime);
},
setSeek: function (position) {
//定位视频, t 为小数,单位为秒。
playerVideo.seek(position);
},
duration: function () {
//获取当前视频的长度,单位秒
playerVideo.getDuration();
},
getCurrentTime: function () {
return playerVideo.getTime();
},
getState: function () {
//getState(): 获取当前播放器的状态,"not_ready", "not_open", "playing", "pause", "end"
try {
var state = playerVideo.getState();
switch (state) {
case "not_ready":
return LiPlayerPlayState.Reconnecting;
break;
case "not_open":
return LiPlayerPlayState.Reconnecting;
break;
case "playing":
return LiPlayerPlayState.Playing;
break;
case "pause":
return LiPlayerPlayState.Paused;
break;
case "end":
return LiPlayerPlayState.Ended;
break;
}
} catch (e) {
return -1;
}
},
close: function () {
playerVideo.close();
}
};
var timeState = null;
var timeStateIsPaused = false;
var timeStateIsRePlaying = false;
//启动定时器,监控播放状态
function startTimerState() {
if (timeState == null) {
timeState = setInterval(timerStateCallback, 500);
}
}
//转换播放状态码
function getStateCode() {
try {
var state = this.playerVideo.getState();
switch (state) {
case "not_ready":
return LiPlayerPlayState.Reconnecting;
break;
case "not_open":
return LiPlayerPlayState.Reconnecting;
break;
case "playing":
return LiPlayerPlayState.Playing;
break;
case "pause":
return LiPlayerPlayState.Paused;
break;
case "end":
return LiPlayerPlayState.Ended;
break;
}
} catch (e) {
return -1;
}
}
function timerStateCallback() {
var state = getStateCode();
switch (state) {
case 2:
//播放状态暂停时,停止计时
if (!timeStateIsPaused) {
this.player.config.onPaused();
timeStateIsPaused = true;
//设置允许开始继续播放
timeStateIsRePlaying = true;
}
break;
case 3:
//在暂停后重新允许重新开始播放时,回调计时提交
if (timeStateIsRePlaying) {
timeStateIsRePlaying = false;
this.player.config.onRePlay();
}
//播放状态时,启动计时
this.player.config.onPlay();
timeStateIsPaused = false;
break;
}
}
/**
* 播放器初始化回调函数,只调用一次
* @param obj{object} 回调对象{Object {success: boolean, id: string, ref: object#p2ps_video}
* @param swfPlayer{object} swfPlayer对象
*/
function swfPlayerInit(playerObj) {
//this.playerVideo = playerObj.ref;
this.playerVideo = document.getElementById(playerObj.id);
//设置监听事件
this.playerVideo.setEventListener("playerEventListener");
this.player.config.onLoadOverPlay();
startTimerState();
}
/**
* 监听播放状态
* @param event {object} 事件对象
*/
function playerEventListener(event) {
//判断触发事件的状态,1、play(播放) 2、pause(暂停) 3、seek(跳转) 4、end(结束) 5、close(关闭流)
var playState;
if (event.type === "eventPlayResume" || event.type === "eventPlayStart") {
playState = "play";
}
else if (event.type === "eventPlaySeek") {
//如果是跳跃播放
playState = "seek";
}
else if (event.type === "eventPlayPause") {
//如果是暂停状态
playState = "pause";
}
else if (event.type === "eventStreamEnd") {
//如果是播放完成状态
playState = "end";
}
else if (event.type === "eventPlayClose") {
//如果是关闭流
playState = "close";
}
if (window.console)
window.console.log("event.type:" + event.type);
//执行播放绑定事件
toggleEvent(playState, window.player.config);
}
function toggleEvent(state, config) {
switch (state) {
case "seek":
config.onPositionChange();
break;
case "end":
config.onEnded();
break;
}
}
java窗口如何定时关闭_如何使用GreaseMonkey关闭定时弹出的窗口?相关推荐
- wincc怎么做一个弹出画面_在wincc画面上如何弹出小窗口
可以放置画面窗口,用变量来触发何时显示画面窗口 回答者: zishunwang - 资深学长  第3级 2008-07-10 10:29:25 弹出子窗口可用变量触发, ...
- php mysql js弹出登陆小窗口_基于Jquery+div+css实现弹出登录窗口(代码超简单)_jquery...
具体代码详情如下所示: 基本思路先隐藏(dispaly:none)再显示,半透明蒙版层通过 z-index:9998; z-index:9999; 值越大越在前面 index.html jquery点 ...
- html弹出窗口是浮动,JS实现弹出浮动窗口(支持鼠标拖动和关闭)实例详解
本文实例讲述了JS实现弹出浮动窗口.分享给大家供大家参考.具体如下: 这里介绍的JS弹出浮动窗口,支持鼠标拖动和关闭,点击链接文字后弹出层窗口,也称作是弹出式对话框吧. 关于一些参数说明: bodyc ...
- html点击按钮弹出悬浮窗_JS设置弹出小窗口。
经常上网的朋友可能会到过这样一些网站,一进入首页立刻会弹出一个窗口,或者按一个连接或按钮弹出,通常在这个窗口里会显示一些注意事项.版权信息.警告.欢迎光顾之类的话或者作者想要特别提示的信息.其实制作这 ...
- sharepoint 2010 默认弹出模式窗口最大化default showModalDialog maximize
记录一下如何在sharepoint 2010 弹出模式窗口最大化的方法. 前面提到关于sharepoint 2010 弹出模式窗口showModalDialog并返回值returnResult方法,知 ...
- java弹窗点击事件_[Java教程]jQuery的click事件在当前页弹出层窗口(不打开新页面)...
[Java教程]jQuery的click事件在当前页弹出层窗口(不打开新页面) 0 2015-10-24 15:00:04 当给链接添加一个click事件,我们可能不希望Web浏览器按照其常规模式退出 ...
- java bat 运行 jar文件_运行bat文件启动java的jar且不弹出DOS窗口,后台运行java的jar包...
本文主要是将java的jar包启动的cmd命令添加到bat文件来执行,且不弹出DOS窗口,也就是后台运行java的jar包. 这里以win10为例 1.新建 一个txt文件,在文件添加以下内容.其中E ...
- pyqt5子窗口跳出主窗口_弹出式窗口与 可用性,转换和跳出率
pyqt5子窗口跳出主窗口 Written by Cassandra Naji 由卡珊德拉·纳吉 ( Cassandra Naji)撰写 They go by many names - modal w ...
- Windows下Java调用BAT批处理不弹出cmd窗口
常规Windows下Java调用BAT方式肯定会弹出cmd窗口 Runtime.getRuntime().exec("cmd.exe /C start D:\\test.bat") ...
最新文章
- mounty不可重新挂载因为先前没有完全卸载_【译】React Hooks测试完全指南
- 下边框_山寨iPhone12Pro开箱:浴霸四摄更小,下边框有点宽
- pxe linux自动安装系统,通过 PXE 自动安装操作系统(1):部署 PXE Server
- 模仿网易(163)首页Ajax功能中的鼠标延时触发
- QT中动态库和静态库使用
- Linux 定时执行命令 crontab
- oracle ebs 安装教程,Oracle_EBS_系统安装以及维护.doc
- mysql奢姿密码_mysql trim函数和oracle有区别吗
- ASP.NET AJAX入门系列(5):使用UpdatePanel控件(二)
- Module-Zero之组织单元(OU)管理【新增】
- python 构造函数传参_C++和python混合编程之在python类构造函数中传参方法
- vue和哪个php框架搭配,vue配什么ui框架比较好
- 算法十大排序(含动图)
- 使用PL/SQL程序输出1~13中所有不是3的倍数的整数数值
- 虚拟机服务器ip端口映射,VMware虚拟机配置端口转发(端口映射),实现远程访问【转】...
- OpenWRT安装Home Assistant
- 编程中常见的各种符号英文名字
- c# forbidden.html,C#Web API方法返回403 Forbidden
- 【程序设计训练】棋盘
- js中得~~是什么意思/JS按位非(~)运算符与~~运算符的理解分析
热门文章
- 【超级视客营】基于超算平台的MMYOLO实践过程记录(自定义数据集实现YOLO v5)
- 数仓建设(离线和实时)
- C#创建Windows窗体应用程序实例1【姓名输入】
- 关于RSA加密后,后台解密中文乱码的解决方法
- c语言中分不分大小写,C语言高级语言程序设计(一)-第四章 程序设计方法-模块化与算法设计.ppt...
- T字形路口小车如何要c语言编程,一点通驾校模拟考试
- vue_按需引入elment、echarts和路由懒加载,减少打包体积
- 安卓11上的存储权限问题
- 绩效考核软件,强势助力二、三级公立医院绩效大考
- mysql 字符串截取