油猴脚本 无法读取页面内iframe下的 class信息
本帖最后由 ZYMKJ 于 2022-9-26 14:55 编辑上个问题 可以忽略。PS.顺便问一句,如何关闭悬赏贴。
我发现一个bug,我完全不需要跨iframe读取“开始学习”这个class。因为只要打开那个网页,后台就开始计时。
所以,忽略就完事了。
但有一个新的问题。就是设置定时关闭新打开的网页B(图片2),然后延迟3秒刷新网页A(图片1)
现在网页B 最下面有一个标签<script type="text/javascript">
document.oncontextmenu = function(){
return false;
}
readAssist("2878","10","481","20.0","2400","/study", 240);
< /script>
(图3)
在控制台输入readassist,显示如下代码:
(function(window,$){
var timer1;
var timer2;
window.readAssist=function(id,source,postion,percent,len,root,timespace)
{
var reloginpage=root+"/page/common-tokenerror";
var assist=new Object;
assist.hid=0;
assist.url=root+"/resource/saveTssView";
assist.source=source;
assist.postion=postion;
assist.percent=percent;
assist.len=len;
assist.time=parseInt(new Date().getTime()/1000);
if(timespace&&!isNaN(timespace)){
assist.timespace=timespace*1000
}
else
{
assist.timespace=60000
}
var result=new Object();
result.cid=id;
result.source=assist.source;
result.position=assist.postion;
result.percent=assist.percent;
assist.first=function(){
if(assist.hid==0){
$.ajax({
url:assist.url,data:JSON.stringify(result),type:"post",dataType:"json",timeout:20000,contentType:'application/json;charset=utf-8',error:function(message){
window.wxc.xcConfirm("网络繁忙,请稍后刷新页面重试!","studyWarning")
},
success:function(data){
if(data){
if(data.status==0){
assist.hid=data.id;
if(assist.timespace!=0){
timer1=window.setInterval(function(){
assist.progressing()
},
assist.timespace);
timer2=window.setTimeout(function(){
assist.progressing();
clearInterval(timer1)
},
(parseInt(len))*1000)
}
}
else if(data.status==1){
window.wxc.xcConfirm("获得初始进度失败,请刷新页面重试!","studyWarning")
}
}
}
}
)
}
};
assist.progressing=function(){
var now=parseInt(new Date().getTime()/1000);
if(assist.postion==""){
assist.postion=now-assist.time
}
else{
assist.postion=parseInt(assist.postion)+(now-assist.time)
}
assist.time=now;
var result=new Object();
result.historyId=assist.hid;
result.position=assist.postion;
result.len=assist.len;
result.cid=id;$.ajax({
url:assist.url,data:JSON.stringify(result),type:"post",dataType:"json",timeout:20000,contentType:'application/json;charset=utf-8',error:function(message){
window.wxc.xcConfirm("网络繁忙,请稍后刷新页面重试!","error")
},
success:function(data){
if(data){
if(data.status==0){
}
else if(data.status==1){
window.wxc.xcConfirm("进度记录失败,请刷新页面重试!","studyWarning")
}
else if(data.status==2){
window.clearTimeout(timer1);
window.clearTimeout(timer2);
window.wxc.xcConfirm("不能同时学习多门课程,点击确认关闭窗口。","readCourse",{
onOk:function(v){window.close()
}
}
)
}
}
}
}
)
};
assist.history=function(){
if(assist.hid==0){
assist.first()
}
else{
assist.progressing()
}
};
assist.history();
return assist
}
}
)
(window,$);
我需要在外置脚本中 调用len(变量)这个数值设定为自动关闭网页B的时间,Len+5秒为刷新网页A的时间。现在不会调取当前网页的len,并把这个len值设为自动关闭网页的时间。
https://bbs.tampermonkey.net.cn/forum.php?mod=viewthread&tid=2267&highlight=%5B%E8%84%9A%E6%9C%AC%E5%AE%9E%E6%88%98%E7%AF%87%5D
跨域实战
善用论坛搜索
各种教程非常完善的 同域iframe
document.querySelectorAll("iframe").contentWindow.document.querySelector(这里填CLASS选择器)
跨域iframe建议看这篇
[油猴开发指南]关于脚本如何处理iframe的碎碎念
https://bbs.tampermonkey.net.cn/thread-2895-1-1.html
(出处: 油猴中文网)
李恒道 发表于 2022-9-22 17:21
https://bbs.tampermonkey.net.cn/forum.php?mod=viewthread&tid=2267&highlight=%5B%E8%84%9A%E6%9C%AC%E5 ...
就是看到你的B站视频,然后找到论坛帖子,然后开始动手写自己刷课脚本{:4_89:} ZYMKJ 发表于 2022-9-22 18:39
就是看到你的B站视频,然后找到论坛帖子,然后开始动手写自己刷课脚本 ...
卡在哪里直接在论坛搜就可以
b站连起步都没讲完...
论坛密度差不多是b站教程的五六倍
{:4_94:}
本帖最后由 ZYMKJ 于 2022-9-22 19:24 编辑
李恒道 发表于 2022-9-22 18:58
卡在哪里直接在论坛搜就可以
b站连起步都没讲完...
论坛密度差不多是b站教程的五六倍
现在前面几步都能对付过去。就最后一步 点击“开始学习”卡住了。 设计到跨域 iframe,
A页面: https://111.aaa.cn/bbb/ccc,其中播放器是iframe src=https://123.aaa.cn/def/mkj
然后那个“开始学习”也不是按钮,而是一个class,但是可以点击,click 命令可以实现点击。现在就是在A页面 读取不到 “开始学习”的class,这不正在研究吗。
从你的【脚本实战篇】 第一个开始看起
ZYMKJ 发表于 2022-9-22 19:23
现在前面几步都能对付过去。就最后一步 点击“开始学习”卡住了。 设计到跨域 iframe,
A页面: https://1 ...
哥哥加油
steven推荐的也可以看看
他的是针对跨域的
ZYMKJ 发表于 2022-9-22 19:23
现在前面几步都能对付过去。就最后一步 点击“开始学习”卡住了。 设计到跨域 iframe,
A页面: https://1 ...
都是aaa.cn,主域名相同,应该可以获取。
参考链接:https://bbs.tampermonkey.net.cn/thread-3269-1-1.html
本帖最后由 ZYMKJ 于 2022-9-26 14:49 编辑
此回复删除了。在1楼编辑了。
另外这个悬赏 怎么结束?
页:
[1]