2010-06-29 5 views
0

Je suis en train d'exécuter ce code de ce fil dans StackOverflow dans Oracle faîtières et il semble que l'appel setTimeout ne fonctionne pas comme supposer:setTimeout ne fonctionne pas Oracle Apex

[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> 

Si quelqu'un avec Oracle ApEx pourrait s'il vous plaît essayer cela dans v3.0.1, et le faire, pls laissez-moi savoir comment.

Merci.

Répondre

0

Ce problème n'a rien à voir avec Apex - en fait, vous pouvez prendre le code HTML que vous avez publié, l'enregistrer dans un fichier et exécuter ce fichier dans un navigateur pour le tester. Malheureusement, www.google.com est une URL qui ne fonctionnera pas avec ce code, car elle contient un code JavaScript "framebusting" qui sort du cadre dans la fenêtre du navigateur, après quoi votre code est ne fonctionne plus. stackoverflow.com fait quelque chose de similaire. Si vous changez la première URL pour www.bbc.com par exemple, cela fonctionne (sur IE de toute façon) jusqu'à ce qu'il arrive à stakoverflow.com, quand il sort du cadre.

+0

Comprendre que cela fonctionne très bien dans IE6, mais juste pour vous faire savoir qu'au lieu d'utiliser des cadres, je modifie en fait le code pour faire référence à un iframe src en utilisant document.getElementById (« iframe »). Src = dashboard.url I pense que le problème est avec l'appel setTimeout dans Apex. Comme un test Tony, créez une fonction fictive dans le code ci-dessus qui alerte un message et appelez cette fonction en utilisant setTimeout ("yourFunction();", 5000) et j'espère que vous verrez que cela ne fonctionnera pas. Pls nous le faire savoir - merci. – tonyf

+0

En outre, j'utilise mes URL intranet et je ne référence pas les URL google.com ou stackoverflow dans mon code. – tonyf

+0

OK, je n'ai pas Apex 3.0 mais testé avec Apex 4.0 à apex.oracle.com et ça marche bien: http://apex.oracle.com/pls/otn/f?p=37742:1 –

Questions connexes