0

Oracle ApeX のスタック オーバーフローのこのスレッドからこのコードを実行しようとしていますが、setTimeout 呼び出しが想定どおりに機能していないように見えます。

[see thread][1]

<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: "http://www.google.com", time: 5},
        {url: "http://www.yahoo.com", time: 10},
        {url: "http://www.stackoverflow.com", time: 15}
    ],

    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>

この呼び出しを Oracle ApEx v3.0.1 で機能させるにはどうすればよいですか?

4

1 に答える 1

0

この問題は Apex とは関係ありません。実際、投稿した HTML を取得してファイルに保存し、そのファイルをブラウザで実行してテストすることができます。

残念ながら、www.google.com はこのコードでは機能しない URL です。このコードには、独自の「フレームバスト」Javascript が含まれており、フレームからブラウザ ウィンドウにポップアップ表示され、その後、コードは実行されなくなります。stackoverflow.com も同様のことを行っています。たとえば、最初の URL を www.bbc.com に変更すると、stakoverflow.com に到達してフレームから飛び出すまで (とにかく IE で) 機能します。

于 2010-06-29T14:48:51.463 に答える