本帖最后由 ZYMKJ 于 2022-10-28 14:44 编辑
本帖最后由 ZYMKJ 于 2022-10-28 14:35 编辑
本帖最后由 ZYMKJ 于 2022-10-28 14:34 编辑
网页头部引用了browser.js对浏览器及其版本进行了判断。
我用的360极速浏览器,每次打开都谈alert弹窗,必须按回车或者其他键才能继续进行下一步,导致脚本进行不下去
现在有4个思路:
1、脚本直接修改navigator.userAgent.toLowerCase()的返回值("mozilla/5.0 (windows nt 6.1; wow64) applewebkit/537.36 (khtml, like gecko) chrome/86.0.4240.198 safari/537.36");
2、劫持browser.js,使下段代码失效
if(!isIeBrowser()){
alert('请使用IE8.0及以上版本浏览器听课!');
}else if(parseInt(getBrowserVersion()) != NaN && parseInt(getBrowserVersion()) < 8 ){
alert('请使用IE8.0及以上版本浏览器听课!');
};
3、覆盖原生JS代码,去掉alert弹窗(网页原生JS中的a12176141 是随机值,不能动,只去掉if(){alert}中的alert);
4、简单粗暴,脚本直接模拟键盘输入 回车键。但alert会打断脚本执行
求解决最简洁的解决方案
代码如下:
function isIeBrowser(){
var userAgent = navigator.userAgent.toLowerCase();
return /msie/.test(userAgent) && !/opera/.test(userAgent);
}
function isChromeBrowser(){
var userAgent = navigator.userAgent.toLowerCase();
return /chrome/.test(userAgent);
}
/**
* 获取浏览器版本号
* @returns
*/
function getBrowserVersion(){
var userAgent = navigator.userAgent.toLowerCase();
return (userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/) || [])[1];
}
原生JS 对返回值进行了判断
<script type="text/javascript">
$(document).ready(function(){
//如果不是ie浏览器
if(!isIeBrowser()){
alert('请使用IE8.0及以上版本浏览器听课!');
}else if(parseInt(getBrowserVersion()) != NaN && parseInt(getBrowserVersion()) < 8 ){
alert('请使用IE8.0及以上版本浏览器听课!');
}
var isHttps = location.protocol.indexOf('https') != -1;
var thisUrl1 = isHttps ? 'https://****/a12176141/index.html' : '/course/a12176141/index.html';
var thisUrl2 = isHttps ? 'https://****/a12176141/index.htm' : '/course/a12176141/index.htm';
$.ajax({
url:'/course/a12176141/index.html',
type:"get",
success:function(){
//说明请求的url存在,并且可以访问
$("#courseplay").attr("src", thisUrl1);
},
statusCode:{
404:function(){
//说明请求的url不存在
$("#courseplay").attr("src", thisUrl2);
}
}
});
});
</script>