Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: pętla, tablice i document.getelementbyid
Forum PHP.pl > Forum > Po stronie przeglądarki
karis
cześc

anpisałem coś takiego

Kod
<script>
function open(adres)
{

  var adres = adres;
  var objekt;
    
  objekt = document.getElementById('koza');
    
  objekt.innerHTML=('<iframe name="I1" marginwidth="1" marginheight="1" height="1" width="1" src="'+adres+'"></iframe>');


}

</script>


jak mozna to przerobic aby otwierał losową stronę z tablicy?
piotrooo89
Math.random() zwróci Ci jakąś liczbę po czym będzie to klucz do tablicy.
karis
jak to zrobic, bo na razie ta funkcja zwraca tylko licby dziesiętne
piotrooo89
możesz użyć math.ceil
p10
Cytat(karis @ 25.04.2009, 21:25:26 ) *
anpisałem coś takiego
(...)
jak mozna to przerobic aby otwierał losową stronę z tablicy?


generalnie jest taka zasada, że dużo lepiej pisać kod, który da się radę wykorzystać wiele razy.
nie pisz jednej dużej funkcji która robi wiele rzeczy, a raczej kilka mniejszych, bardziej wyspecjalizowanych.

tu masz przykład, jak ja bym to pisał. dopisanie obsługi błędów pozostawiam tobie. te długie nazwy tylko dla czytelności - zalecam zamienienie ich na krótsze. dodatkowo możesz wyeliminować kilka zmiennych globalnych poprzez osadzenie kodu do 'odpalenia' w funkcji anonimowej.

CODE

function wylosujLiczbeZPrzedzilau(poczatek, koniec) {
return Math.floor(Math.random() * koniec + poczatek);
}

function wstawIframeWElementPoprzezId(id, adres, atrybutyIframea) {
var el = document.getElementById(id);
// tu sprawdz czy ten el istnieje, jak nie to obsluz blad
var iframe = document.createElement('iframe');
// tu sprawdz czy podano adres, jak nie obsluz blad
iframe.src = adres;
if (atrybutyIframea) {
for (var x in atrybutyIframea) iframe[x] = atrybutyIframea[x];
}
el.appendChild(iframe);
}

function obsluzIframe(id, adresy, atrybuty) {
// tu sprawdz czy tablica ma przynajmniej jeden element
var los = wylosujLiczbeZPrzedzilau(0, adresy.length);
wstawIframeWObiektPoprzezId(id, adresy[los], atrybuty);
}


tak możesz tą funkcję wywołać (po zaladowaniu elementu docelowego)

CODE

<script type="text/javascript">
var id = 'container';
var adresy = ['#1', '#2', '#3', '#4', '#5'];
var atrybuty = {id: 'iframe1', className: 'wstawiany_iframe'};

obsluzIframe(id, adresy, atrybuty);
</script>

To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.