基本标签没有效果

时间:2012-08-28 06:21:38

标签: javascript html

  

可能重复:
  How to detect if JavaScript is disabled?

我需要检测浏览器中是否禁用了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和重定向元标记的内容中,该标记应加载到顶级父位置。

知道为什么这不起作用? 或者我如何让这件事起作用?

由于

2 个答案:

答案 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>