最近在写一个扫描二维码后判断设备类型进行跳转不同设备类型适配的页面时用到window.open方法,但是总是会被浏览器拦截。
网上找了很多方法,包括延迟调用,ajax的异步同步调用,都不见效。后面尝试出一个可以跳转不被拦截的方法,记录一下。
<!DOCTYPE html>
<html lang="en">
<head>
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<meta charset="UTF-8">
<title>跳转中请等待</title>
</head>
<body>
<!-- 这里是thinkphp 的html模版,action是跳转的url -->
<form action="{$qrcode_url}" method="get" id="test_form">
<!-- <button type="button"><button> -->
</form>
<script>
<!-- thinkphp 模版中js获取后端传过来的参数可以这样写 这里也记录下经常忘记 -->
let qrcode_url={:json_encode($qrcode_url)};
if (qrcode_url === '' || qrcode_url === 'undefined') {
alert('游戏暂不支持此设备')
}
else
{
var form = document.getElementById('test_form');
form.submit();
}
</script>
</body>
</html>