setTimeout не работает Oracle Apex - PullRequest
0 голосов
/ 29 июня 2010

Я пытаюсь запустить этот код из этого потока в StackOverflow в 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, и начните, пожалуйста, дайте мне знать, как.

Спасибо.

1 Ответ

0 голосов
/ 29 июня 2010

Эта проблема не имеет ничего общего с Apex - фактически вы можете взять размещенный вами HTML-код, сохранить его в файл и запустить этот файл в браузере для его проверки.

К сожалению, www.google.com - это URL, который не будет работать с этим кодом, потому что он содержит некоторый собственный Javascript, «запускающий фреймы», который вынимает его из фрейма в окно браузера, после чего ваш код больше не работает.stackoverflow.com делает нечто подобное.Если вы, например, измените первый URL-адрес на www.bbc.com, он будет работать (в любом случае в IE), пока не попадет на stakoverflow.com, когда он выскочит из фрейма.

...