0

私は次のHTMLを持っています:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
<title>Dashboard Example</title>
<style type="text/css">
body, html { margin: 0; padding: 0; width: 100%; height: 100%; overflow: hidden; }
iframe { border: none; }
</style>
<script type="text/javascript">
var Dash = {
    nextIndex: 0,

    dashboards: [
        {url: "C:\CarPositionBrisbane.HTML", time: 5},
        {url: "C:\CarPositionCaboolture.HTML", time: 5},
        {url: "C:\CarPositionLogan.HTML", time: 5},
        {url: "C:\CarPositionWarwick.HTML", time: 5},
        {url: "C:\CarPositionHobart.HTML", time: 5},
        {url: "C:\CarPositionToowoomba.HTML", time: 5},
        {url: "C:\CarPositionIpswich.HTML", time: 5},
        {url: "C:\CarPositionYeppoon.HTML", time: 5},


    ],

    display: function()
    {
        var dashboard = Dash.dashboards[Dash.nextIndex];
        frames["displayArea"].location.href = dashboard.url;
        Dash.nextIndex = (Dash.nextIndex + 1) % Dash.dashboards.length;
        setTimeout(Dash.display, dashboard.time * 1000);
    }
};

window.onload = Dash.display;
</script>
</head>
<body>
<iframe name="displayArea" width="100%" height="100%"></iframe>
</body>
</html>

Google Chrome では完全に動作しますが、XP マシンで動作する必要があるため、IE8 で動作させる必要があります。

次のコードを IE で実行すると、空白の画面が表示されます。

助言がありますか??

4

1 に答える 1

1

ダッシュボードのリストに末尾のカンマがあります。すべての IE バージョンは JavaScript を非常に厳密に解析し、リストとオブジェクトの末尾のコンマを許可しません。

JavaScript ソース コードをチェックする非常に効果的な方法は、この種のエラーを報告するJSHintを使用することです。

コードの次の部分を修正する必要があります。

// quoting of the "\" in the URLs fixed.
dashboards: [
    {url: "C:\\CarPositionBrisbane.HTML", time: 5},
    {url: "C:\\CarPositionCaboolture.HTML", time: 5},
    {url: "C:\\CarPositionLogan.HTML", time: 5},
    {url: "C:\\CarPositionWarwick.HTML", time: 5},
    {url: "C:\\CarPositionHobart.HTML", time: 5},
    {url: "C:\\CarPositionToowoomba.HTML", time: 5},
    {url: "C:\\CarPositionIpswich.HTML", time: 5},
    {url: "C:\\CarPositionYeppoon.HTML", time: 5} // <--- comma removed
],

window.onload は IE8 では機能しません: IE8 では window.onload は機能しません

このようなブラウザの違いを処理する jQuery またはその他の JavaScript ライブラリを使用することをお勧めします。jQuery を使えば、書くのと同じくらい簡単です。

$(function() {
    // insert code here that should be run when the document is ready.
});
于 2013-01-28T23:37:53.857 に答える