Forumi
Home Pravila i pomoć Članovi Kalendar Današnji postovi


Povratak   PC Ekspert Forum > Računala > Software > Web dizajn, programiranje i ostalo
Ime
Lozinka

Odgovori
 
Uređivanje
Staro 09.01.2015., 12:06   #1
Aleksandar /
Registered User
Moj komp
 
Datum registracije: Jan 2015
Lokacija: Beograd
Postovi: 14
Pomoc oko javascripta ? document.getElementById...

Pozdrav svima,

Sastavio sam html kod i ubacio javascript,

HTML:
<html>
<body>
<p id="a">1</p>
<p id="b">2</p>
<p id="v">3</p>
<script type="text/javascript">
document.getElementById("a").innerHTML = "<div>prvi tekst</div>";
document.getElementById("b").innerHTML = "<div>drugi tekst</div>";
document.getElementById("v").innerHTML = "<div>novi tekst</div>";
</script>
</body>
</html>
kod mene ovo radi, ali prvo se prikaze 1 2 3, pa tek poslije 1-2 sekunde se ispravi na prvi tekst, drugi tekst, novi tekst. Jel moze nesto da se doda u javaskript sablon pa da se sve izvrsava prije nego sto se stranica prikaze na zaslonu, mislim postoji li naredba koja ne dozvoljava browseru bilo sta da radi dok se sve js naredbe ne izvrse.

Unaprijed hvala .

Zadnje izmijenjeno od: Aleksandar /. 09.01.2015. u 14:12.
Aleksandar / je offline   Reply With Quote
Staro 09.01.2015., 18:15   #2
sinisa1989
Bazinga
Moj komp
 
sinisa1989's Avatar
 
Datum registracije: Nov 2007
Lokacija: Križevci
Postovi: 3,926
Pretpostavljam da ima puno više html kôda kad kažeš da se javascript izvrši nakon 1-2 sekunde. Probaj s ovim:
HTML:
<html>
    <body onload="changeContent();">
        <p id="a">1</p>
        <p id="b">2</p>
        <p id="v">3</p>
        <script type="text/javascript">
            function changeContent() {
                document.getElementById("a").innerHTML = "<div>prvi tekst</div>";
                document.getElementById("b").innerHTML = "<div>drugi tekst</div>";
                document.getElementById("v").innerHTML = "<div>novi tekst</div>";    
            }
        </script>
    </body>
</html>
P.S. Jel si razmišljao o nekom libraryu, npr. jQuery?
__________________
The best place to hide a dead body
is page 2 of Google search results.
sinisa1989 je offline   Reply With Quote
Oglasni prostor
Oglas
 
Oglas
Staro 09.01.2015., 19:39   #3
Aleksandar /
Registered User
Moj komp
 
Datum registracije: Jan 2015
Lokacija: Beograd
Postovi: 14
Jesam. Samo o njemu malo znam. A čuo sam da u njemu ima ta opcija mislim da se zove e.preventDefault (); , Samo neznam kako se pravilno korist i gdje se uglavljuje, ...?

Ali gornji odgovor mi ne odgovara jer ja javascript koristim kao eksternu skriptu, kao sastavni dio browsera (Greasemonkey), pa html kod ne mogu minjati (mislim ono body).

Zadnje izmijenjeno od: Aleksandar /. 09.01.2015. u 21:02.
Aleksandar / je offline   Reply With Quote
Staro 09.01.2015., 21:28   #4
drazac
Premium
Moj komp
 
Datum registracije: Oct 2007
Lokacija: Županja
Postovi: 134
drazac je offline   Reply With Quote
Staro 09.01.2015., 22:43   #5
ShebY
Premium
Moj komp
 
ShebY's Avatar
 
Datum registracije: Sep 2007
Lokacija: Velika / Osijek
Postovi: 1,442
Za jQuery sintaksa ide
$("#a").html("<div>prvi tekst"</div>");
Itd. za ostale elemente
__________________

ShebY je offline   Reply With Quote
Staro 10.01.2015., 20:03   #6
Aleksandar /
Registered User
Moj komp
 
Datum registracije: Jan 2015
Lokacija: Beograd
Postovi: 14
Znam i za taj šablon, ali je problem samo da se to sve odradi brzo .

Zadnje izmijenjeno od: Aleksandar /. 10.01.2015. u 22:51.
Aleksandar / je offline   Reply With Quote
Staro 12.01.2015., 18:22   #7
Aleksandar /
Registered User
Moj komp
 
Datum registracije: Jan 2015
Lokacija: Beograd
Postovi: 14
Znači niko nezna ili ... ?
Aleksandar / je offline   Reply With Quote
Staro 12.01.2015., 19:48   #8
drazac
Premium
Moj komp
 
Datum registracije: Oct 2007
Lokacija: Županja
Postovi: 134
Testirao sam tvoj kod unutar html datoteke koju sam napravio, i promjena iz 1, 2, 3 u tekst se događa instantno, bez zadrske. No to je na maltene praznoj stranici. Kako se ponasa kada stranica ima kompletan sadrzaj, trenutno nemam prilike testirati.

Ako iz nekog razloga ne mozes iskoristiti jQuery library, pokusat napraviti mali "hack":

Napisi unutar js-a:

var id_a = document.getElementById("a");
var id_b = document.getElementById("b");
var id_v = document.getElementById("v");

id_a.style.display="none";
id_b.style.display="none";
id_v.style.display="none";

Prvo sakrij elemente koji sadrze gornje id-jeve. (umjesto display, mozes koristiti i visibility ili opacity svojstvo ako hoces). Ako se pri ucitavanju stranice elementi sakriju instantno, tada izvrsi ostatak coda:

id_a.innerHTML = "<div>prvi tekst</div>";
id_b.innerHTML = "<div>drugi tekst</div>";
id_v.innerHTML = "<div>novi tekst</div>";

id_a.style.display= "block";
id_b.style.display= "block";
id_v.style.display= "block";

Ako radi, ovaj kod mozes kasnije promijeniti da ne bude ovako redundantan.
drazac je offline   Reply With Quote
Staro 12.01.2015., 22:33   #9
Aleksandar /
Registered User
Moj komp
 
Datum registracije: Jan 2015
Lokacija: Beograd
Postovi: 14
Sad se pojavio problem što kada prvi put otvaram stranicu pokazuje "1" (recimo), a kada osvježavam js se tek onda aktivira, pa sam probao i isključiti preglednik, i opet otvorim, isto, prvo ništa, a tek kada osvježim ono radi .

Nikako neće odmah.
Aleksandar / je offline   Reply With Quote
Staro 12.01.2015., 23:12   #10
ShebY
Premium
Moj komp
 
ShebY's Avatar
 
Datum registracije: Sep 2007
Lokacija: Velika / Osijek
Postovi: 1,442
glupo pitanje, dali ti se nalazi taj js u footeru?
i dali si ga probao stavljati u document ready?
Code:
// self executing function here
(function() {
   // your page initialization code here
   // the DOM will be available here

})();
__________________

ShebY je offline   Reply With Quote
Oglasni prostor
Oglas
 
Oglas
Staro 13.01.2015., 22:10   #11
Aleksandar /
Registered User
Moj komp
 
Datum registracije: Jan 2015
Lokacija: Beograd
Postovi: 14
Evo sada sam ovako napisao:

HTML:
// ==UserScript== 
// @name          jQuery Example 
// @require       http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js 
// ==/UserScript==  
// Append some text to the element with id someText using the jQuery library.4 
$(document).ready(function(){ 
 var id_a = document.getElementById("a");
 id_a.style.opacity="none"; id_a.innerHTML = "<div>prvi tekst</div>"; 
id_a.style.display= "block"; event.preventDefault(); 
 });
i isto, kada prvi put otvara ništa se ne dešava, tek kada otvorim i osvežim ono radi . Prvi put nikako neće.

Zadnje izmijenjeno od: Aleksandar /. 13.01.2015. u 22:22.
Aleksandar / je offline   Reply With Quote
Staro 14.01.2015., 00:26   #12
drazac
Premium
Moj komp
 
Datum registracije: Oct 2007
Lokacija: Županja
Postovi: 134
Radis li na lokalnom projektu ili online?

Ako je lokalni, stvari znaju biti malo usporene (bar je meni tako)... a ako je online.

Probaj napraviti ovo:

Unutar CSS-a, stavi:

#a, #b, #v {
display: none;
ili
visibility: hidden;
ili
opacity: 0;
}

A onda unutar js-a (sobzirom da korisits jQuery)

$(document).ready(function(){
var id_a = $("#a");
var id_b = $("#b");
var id_v = $("#v);

id_a.innerHTML = "<div>prvi tekst</div>";
id_b.innerHTML = "<div>drugi tekst</div>";
id_v.innerHTML = "<div>treci tekst</div>";

$("#a, #b, #v").css({
ovisno o toga sto ti je unutar css-a, stavi ovo:
"display": "block";
ili
"opacity": 1;
ili
"visiblity": "visible";
});
});

Onaj event.preventDefault(); ti ne treba. A ako ga bas iz nekoga razloga zelis staviti, mada nece utjecati na nista, onda moras u ready funkciju staviti event, odnosno:

$(document).ready(function(event){
bla
});
drazac je offline   Reply With Quote
Staro 14.01.2015., 19:22   #13
Aleksandar /
Registered User
Moj komp
 
Datum registracije: Jan 2015
Lokacija: Beograd
Postovi: 14
misliš nešto ovako:

HTML:
<html>
<body>
<p id="a">1</p>
<p id="b">2</p>
<p id="v">3</p>
<style type="text/css">
#a, #b, #v {
display: none;
}
</style>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var id_a = $("#a");
var id_b = $("#b");
var id_v = $("#v);
id_a.innerHTML = "<div>prvi tekst</div>";
id_b.innerHTML = "<div>drugi tekst</div>";
id_v.innerHTML = "<div>treci tekst</div>";
$("#a, #b, #v").css({
"display": "block";
});
});
</script>
</body>
</html>
Sada se prikazuje potpuno prazna stranica, bijela. Nema ništa .

Zadnje izmijenjeno od: Aleksandar /. 14.01.2015. u 19:53.
Aleksandar / je offline   Reply With Quote
Staro 14.01.2015., 20:17   #14
drazac
Premium
Moj komp
 
Datum registracije: Oct 2007
Lokacija: Županja
Postovi: 134
Ovisno o tome jeli ukljucen jquery ce ili radit ili ne. Ja sam pretpostavio da si ga includao u head tag, no ako nisi onda ovako:

umjesto

Code:
var id_a = $("#a");
var id_b = $("#b");
var id_v = $("#v);
id_a.innerHTML = "<div>prvi tekst</div>";
id_b.innerHTML = "<div>drugi tekst</div>";
id_v.innerHTML = "<div>treci tekst</div>";
$("#a, #b, #v").css({
"display": "block";
});
});
stavi

Code:
var id_a = document.getElementById("a");
var id_b = document.getElementById("b");
var id_v = document.getElementById("v");
id_a.innerHTML = "<div>prvi tekst</div>";
id_b.innerHTML = "<div>drugi tekst</div>";
id_v.innerHTML = "<div>treci tekst</div>";
id_a.style.display = "block";
id_b.style.display = "block";
id_v.style.display = "block";
});
Razlog zasto ti se nista ne vidi jest sto se ucitao css i sakrio elemente, a prilikom izvrsavanja scripte je doslo do greske (vjerojatno nije ukljucen jquery) pa se naredbe koju su eksluzivne za jQuery se nisu mogle izvrsiti.

Probaj sada
drazac je offline   Reply With Quote
Oglasni prostor
Oglas
 
Oglas
Odgovori



Pravila postanja
Vi ne možete otvarati nove teme
Vi ne možete pisati odgovore
Vi ne možete uploadati priloge
Vi ne možete uređivati svoje poruke

BB code je Uključeno
Smajlići su Uključeno
[IMG] kod je Uključeno
HTML je Isključeno

Idi na