ugrás a tartalomhoz

Java Script-el frame frissítése. Help

666 · 2007. Jún. 16. (Szo), 21.24
Hello
Egy kis segítséget kérnék. Egy olyan Java Script-re lenne sükségem ami egy 2 frame-ből álló oldalt tudna frissíteni. Tehát egyik frambe lenne ez a script és frissítené bizonyos időközönként a másik Framben lévő oldalt. A 2. frambe nem tudok írni mivel ezek nem saját oldalak. (Pl: google, yahoo, stb) De az elsőbe bármit. A lényeg, hogy az első Frame frissítse a 2. framet, és kezeljen 5-6 linket amit egymás után bizonyos időközönként frissit. (Tehát cserélgeti az oldal)
A segítséget előre köszönöm.
 
1

Néhány gondolat...

s_volenszki · 2007. Jún. 17. (V), 08.39
Szia!

Valójában nem bonyolult amit szeretnél, ha tudod pontosan, hogy mit szeretnél! Néhány gondolat, hogy tovább juthass:

- Minden html elem (input mezők, gombok, szövegek, framek, iframek) elérhető a dokumentumben az azonosítója alapján.
document.getElementById()

- Az azonosító alapján elért html elem "minden" paramétere változtatható javascript-el, tehát ha az egyik iframe-ed azonosítója id="keret_1", akkor ennek a keretnek a tartalma (a hivatkozás ami beletöltődik) a document.getElementById('keret_1').src

- Ezek után már csak időzíteni kell, az meg nem egy bonyolult feladat: setTimeout()

Javaslom, programozási nyelv nélkül fogalmazd meg pontosan mit is szeretnél, bontsd folyamatokra, és meglátod, minden szükséges funkció rendelkezésedre áll!

s_volenszki

ps.: Ha kezdő vagy fogadj meg egy jótanácsot! Azért van a google, meg a yahoo, meg a stb. hogy keress! Ha keresel, találsz, és tudsz majd kérdezni! :)
2

Hello

666 · 2007. Jún. 17. (V), 13.33
Kösz a segítséget. Hát nem vagyok valami jó a Java-ban, de nekem igazából ez a document.getElementById() kellet, mert nem tudtam hogy lehet a script "áthivatkozni" másik frambe. Megírom a script és ha elakadok akkor majd írok. Még 1X kösz a segítséget.
4

Java vs. JavaScript

janoszen · 2007. Jún. 17. (V), 16.27
Hali,

ne keverjük a Java-t a JavaScript-tel. A JavaScript egy eredetileg HTML-hez írt böngészőben futó nyelv, amíg a Java teljesen más.

Ami a problémát illeti, ha csak nem admin felületre csinálod, nagyon ellenjavallotta frames megoldás.

Szerk: kicsit félreolvastam a kérdést. Lényeg az, hogy az egyes frameket a neveik alapján tudod kezelni, azok location attribútumát tudod változtatni és settimeout-tal tudsz azt hiszem ismétlődést belevinni. Az URL-eket tömbből tudnád kiolvasni leginkább.
3

Etz találtam

666 · 2007. Jún. 17. (V), 14.26
Ez a script jónak tűnik, csak azt hogy kellene vele megcsinálni, hogy ne 1 URL-t ismerjen hanem többet, és ezeket egymás után frissítse. Illetve ez a document.getElementById() nem tudom benn elhelyezni.


<form name="redirect">
<center>
<font face="Arial"><b>You will be redirected to the script in<br><br>
<form>
<input type="text" size="3" name="redirect2">
</form>
seconds</b></font>
</center>

<script>
<!--

/*
Count down then redirect script
By JavaScript Kit (http://javascriptkit.com)
Over 400+ free scripts here!
*/

//change below target URL to your own
var targetURL="http://javascriptkit.com"
//change the second to start counting down from
var countdownfrom=10


var currentsecond=document.redirect.redirect2.value=countdownfrom+1
function countredirect(){
if (currentsecond!=1){
currentsecond-=1
document.redirect.redirect2.value=currentsecond
}
else{
window.location=targetURL
return
}
setTimeout("countredirect()",1000)
}

countredirect()
//-->
</script>
5

szerintem kissé elavult

bandi · 2007. Jún. 17. (V), 22.05
Eléggé sokáig tartott kibogoznom, hogy mi is történik itt. De nagy nehezen sikerült. Működését tekintve jónak tűnik, aztán kipróbáltam, és működik. De volna két megjegyzés.
1. Ugye nem használsz font meg center tag-et, hanem csak példával együtt jött. Brrrr kiráz a hideg.
2. Legtovább a
document.redirect.redirect2.value=currentsecond
sor kibogozása tartott, még soha nem találkoztam a document.redirect elemmel. Aztán leesett: régi poros emlékeim vannak document.forms meg hasonlókról (vagy valami ilyesmi). A hangsúly a régin van. Manapság a inkább az említett document.getElementsById() használatos, és ennek megfelelően a form tag-et is át kell írni.

De inkább itt egy példa a működésre (firefox-ban megy):

<!DOCTYPE html 
     PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
  <head>
    <title>redirect example</title>
    <style type="text/css">
    <!--
      #a {color: red;font-weight:bold}
    -->
    </style>
  </head>
  <body>
    <p>redirecting in <span id="a"> xyz </span> seconds</p>

    <iframe id="b" width="800" height="500"></iframe>

    <script type="text/javascript">
    <!--
    var countdownfrom=10
    var URLs = new Array("http://weblabor.hu/", "http://www.w3schools.com/js/default.asp", "http://www.w3schools.com/js/js_obj_array.asp","http://www.w3schools.com/htmldom/met_doc_getelementbyid.asp") 
    var currentURL=0;
    var display=document.getElementById('a').firstChild;

    var currentsecond=display.textContent=1
    function countredirect_next() {
      if (currentsecond!=1){
        currentsecond-=1
        display.textContent=currentsecond
      }
      else{
        if (currentURL>=URLs.length) {currentURL=0}
        document.getElementById('b').src=URLs[currentURL]
        currentURL+=1
        currentsecond=countdownfrom+1
      }
      setTimeout("countredirect_next()",1000)
    }

    countredirect_next()
    //-->
    </script>
  </body>
</html>
sztem ez elég triviális, nem kell hozzá más, csak az iframe javascript felülete, az az egy sor a függvényben meg könnyen átírható framekre. A többfajta időköz is triviális, ugyanúgy lehet csinálni mint a több címet. Persze ha nagyon szofisztikált akarsz lenni, akkor összedobhatsz egy objektumot, és mindenféle varázsszavakat is előhúzhatsz, mint pl. "iterátor"

bandi


ps. a kódszínezés csodákat tud művelni!

szerk.
ie7-ben is simán megy, csak egy kicsit át kell írni néhány sort

var display=document.getElementById('a');
a kiírásnál pedig le kell cserélni erre:

var currentsecond=display.innerHTML=1
//...
display.innerHTML=currentsecond
szerk.2
kivettem a javascriptkit.com címet, mert ie-ben nincs noscript, és az oldal átírja magát az iframe-ből a teljes ablakra, és így netán úgy tűnhet, hogy rossz a script, pedig nem az :-)
6

THX

666 · 2007. Jún. 17. (V), 23.08
Kösz szépen, pont ilyenre gondoltam, vagy talán ez jobb mint amire én gondoltam :)
Tökéletesen működik pont ahogy kell. Még 1X kössz
7

mázli

bandi · 2007. Jún. 18. (H), 02.20
mázlid van, mert már régen szerkesztettem weblapot, ezért kedvet éreztem egy kevés ujjgyakorlatra, megírtam ezt az egyszerű kódot. Itt a weblaboron nem szoktunk kész kódokat osztogatni, akkor bizony valakit meg kell fizetned érte. Abban viszont mindenki nagyon szívesen segít, hogy egy ilyen, jól megfogalmazott kérdéshez iránymutatásokkal szolgál, hogy megoldhasd a problémát.

Remélem, hogy sokat segítettem, és legközelebb már te segítesz majd másnak. Tanuláshoz ajánlom a példa kódban szereplő linkeket :-)