Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> pętla, tablice i document.getelementbyid
karis
post 25.04.2009, 20:25:26
Post #1





Grupa: Zarejestrowani
Postów: 217
Pomógł: 2
Dołączył: 23.12.2008

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
piotrooo89
post 25.04.2009, 20:43:26
Post #2


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




Math.random() zwróci Ci jakąś liczbę po czym będzie to klucz do tablicy.


--------------------
Go to the top of the page
+Quote Post
karis
post 25.04.2009, 21:25:19
Post #3





Grupa: Zarejestrowani
Postów: 217
Pomógł: 2
Dołączył: 23.12.2008

Ostrzeżenie: (0%)
-----


jak to zrobic, bo na razie ta funkcja zwraca tylko licby dziesiętne
Go to the top of the page
+Quote Post
piotrooo89
post 25.04.2009, 21:27:35
Post #4


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




możesz użyć math.ceil


--------------------
Go to the top of the page
+Quote Post
p10
post 28.04.2009, 20:27:43
Post #5





Grupa: Zarejestrowani
Postów: 8
Pomógł: 2
Dołączył: 23.04.2009

Ostrzeżenie: (0%)
-----


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>



Ten post edytował p10 28.04.2009, 20:37:59
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 6.07.2025 - 07:07