我需要检测浏览器中是否禁用了javascript。
为此,我在文档中放置了一个iframe,并以10秒的间隔刷新页面。禁用脚本后,必须使用javascript错误URL重定向顶级父级。这是我的iframe代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<base href="http://localhost/test/" target="_top" />
<noscript>
<meta http-equiv="refresh" content="1; URL=http://localhost/test/javascript_error.php" />
</noscript>
<meta http-equiv="refresh" content="10" />
<title>Detect Script</title>
</head>
<body style="text-align:center;">
Detecting whether javascript script is enabled/disabled in the browser.
</body>
</html>
我正在将标记添加到iframe html和重定向元标记的内容中,该标记应加载到顶级父位置。
知道为什么这不起作用? 或者我如何让这件事起作用?
由于
答案 0 :(得分:1)
base
标记仅影响网址显示为指定为具有网址值的属性内容的网址,例如href
。
处理启用/禁用JavaScript的建设性方法是首先设计一个假定禁用JavaScript的页面,然后以非突兀的方式添加JavaScript。
答案 1 :(得分:0)
更新:我知道你要做什么。 base
标记仅适用于链接。因为只有在禁用JavaScript时才会这样做,iframe的href不可能改变,你不可能“以编程方式点击”可能引用该JavaScript错误页面的链接,使用base
确实没有可能的解决方案。请参阅下面的解决方案。
您的代码无效的原因是因为大多数浏览器不会单独呈现2 <meta http-equiv="refresh">
个代码。
所以不要写<meta http-equiv="refresh" content="10" />
,而是写:
<script type="text/javascript">
setTimeout(function () {
window.location.reload();
}, 10000);
</script>