window.location不会在空页面上重定向?

时间:2014-06-28 12:46:37

标签: javascript redirect

我生成一个页面来获取一些变量并快速重定向它们。 但是重定向没有被执行。 这是在我的浏览器中呈现的完整页面:

<HTML><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<head><LINK REL='stylesheet' TYPE='text/css' HREF='css/style.css' NAME='style'>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
<meta name='viewport' content='width=device-width, minimum-scale=1.0, maximum-scale=1.0' />
<title></title>
</head>

<script>

function get_init_values()
{
    //document.write("Hi");

    $clientWidth = document.body.clientWidth;
    $clientHeight =  document.body.clientHeight;

    window.location="?page=init&clientwidth="+$clientWidth+"&clientheight="+$clientHeight;
    return false;

}</script>
<script>get_init_values();</script>
</HTML>

但是当我取消注释document.write语句时,重定向会根据需要执行。我在这里错过了什么基本的理解?  我用IE,firefox和IPhone Safari测试了这个结果。

编辑! 浏览器我只是空白。 删除了以下内容:      return get_init_values(); 哪个刚刚添加进行测试。没有区别。

1 个答案:

答案 0 :(得分:2)

代码是放在页面顶部还是底部?我认为在运行之前文档中没有任何内容呈现,所以它命中null并且不起作用。如果你把它放在页面的底部或者在文档中有一个节点开始我认为它应该可以工作。

  • 编辑:你需要一个body元素。然后将脚本标记放在末尾</body>标记内。它之间不起作用的原因是因为文档中没有任何内容可以获取ClientWidth / height,当Null返回时它会停止脚本执行,因为存在错误“Uncaught TypeError:无法读取属性” clientWidth'of null“