繁体   English   中英

为什么JavaScript无法在屏幕分辨率检查中替换innerHTML?

[英]Why won't javascript replace innerHTML on screen resolution check?

我试图让我的网站检查屏幕分辨率,并用纯文本链接替换已安装的字体图标(使用@webfont),以使该网站对移动设备更加友好。 我正在使用Opera Mobile Emulator来检查它是否有效。 我正在使用的用户界面显然返回了480x320的分辨率(在页面的左上角),但是.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>

该javascript在HTML加载之前正在执行。 因此,当javascript触发时,没有ID为“ homelink”的元素。

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

摆脱document.write调用,然后将脚本放置在结束body标记之前,即可正常工作。

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

  2. 确保在<700范围内进行测试

  3. 添加一个DOM ready火。

  4. 将此放置在

事情就可以了:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM