为什么javascript不会在屏幕分辨率检查中替换innerHTML?

时间:2013-11-02 20:59:48

标签: javascript html

我正在尝试让我的网站检查屏幕分辨率并使用纯文本链接替换已安装的字体图标(使用@webfont),以便该网站更具移动性。我使用Opera Mobile Emulator来检查它是否有效。我正在使用的用户界面清楚地返回了480x320的res(在页面的最左上方),但.innerHTML javascript没有启动。有什么帮助吗?

    <!DOCTYPE html>
<html>

<head>

<title>Harry's Bar</title>

    <meta name="keywords" content="Harry's, bar, st. petersburg, florida, kenneth city, drink specials" />

    <meta name="description" content="Harry's Bar in St. Petersburg, Florida.  Drink specials every night!" />

    <meta name="author" content="Internet Solutions of Florida" />

    <link rel="stylesheet" type="text/css" href="styles.css" /> 
</head>

<body>
<script type="text/javascript">
var width=screen.width;
var height=screen.height;
document.write(width+'x'+height);
if (width<700)
    {document.getElementById("homelink").innerHTML="Home";}

</script>

<div class="frame">
<div class="header">
<img class="logo" src="img/logo.png" alt="Harry's Bar" />
    <div class="menu">
        <ul>
        <li><a id="homelink" href="index.html" title="home">&#xf015</a></li>
        <li><a id="drinklink" href="drinks.html" title="drink menu">&#xf0fc</a></li>
        <li><a id="piclink" href="images.html" title="picture gallery">&#xf030</a></li>
        <li><a id="directionslink" href="directions.html" title="directions">&#xf0d1</a></li>
        <li><a id="contactlink" href="contact.html" title="contact us">&#xf075</a></li>
        </ul>
    </div>
</div>

2 个答案:

答案 0 :(得分:0)

在加载HTML之前,javascript正在执行。所以当javascript触发时,没有带有“homelink”id的元素。

此外,通过使用document.write,您可以有效地覆盖原始HTML,因此标签永远不会加载。

删除document.write调用并将脚本放在关闭的body标记之前,它应该按预期工作。

答案 1 :(得分:0)

  1. 不需要document.write()。如果你想诊断你可以使用document.title或创建一个div和divid.innerHTML

  2. 确保您在&lt; 700区

  3. 上进行测试
  4. 添加DOM ready fire。

  5. 将其放在

  6. 的末尾

    事情应该有效:)