| Autor | Zpráva | ||
|---|---|---|---|
| Medvídek Profil |
#1 · Zasláno: 9. 10. 2010, 13:13:47 · Upravil/a: Medvídek
Zkoušel jsem nějak sesmolit získání obsahu kotvy z url (dejme tomu adresa: .../novinky/#kotva=633)
<script>
function get_hash() {
hash = document.location.hash.replace(new RegExp('^(.*)#'), '');
get = {}
if (hash) {
hash = hash.split('&');
for (i = 0; i < hash.length; i++) {
hash[i] = (hash[i]).split('=');
get[hash[i][0]] = (hash[i][1] ? hash[i][1] : null);
}
}
return get;
}
_get = get_hash();
var idecko = _get.kotva;
alert(idecko);//TADY SE SPRAVNE ZOBRAZI 633
document.getElementById(idecko).style.borderColor='#AAFF00'; //neprovede se, na strance je komentar (div) s ID="633"
</script>
Pokud si nechám vypsat v alertu proměnnou idecko, tak se správně zobrazí číslo 633. Ale pokud proměnnou použiji, na změnu barvy borderu příspěvku, tak se nic nestane. Ale i tak mi to přijde trošku krkolomné řešení, raději bych měl kotvy ve formátu #633, ale to zas nevím, jak dostat to číslo. Zkoušel jsem i s odkazem #633 (pro mě lepší), ale _get = get_hash(); var idecko = _get[0]; hodí chybu undefined. |
||
| Str4wberry Profil |
#2 · Zasláno: 9. 10. 2010, 18:46:54
Některým prohlížečům v některých režimech se, myslím, nelíbí ID s číslem na začátku. Takže bych zkusil před ID přidat nějaký povolený znak (např. písmeno), případně něco jako
document.getElementsByTagName("nějakáZnačka")[idecko].style.borderColor='#AAFF00';.
|
||
| Medvídek Profil |
#3 · Zasláno: 10. 10. 2010, 20:41:37 · Upravil/a: Medvídek
Str4wberry:
Předělal jsem to na: ...../komentare/#k207
koment = document.location.hash.replace(new RegExp('^(.*)#'), ''); //do promenne se spravne vlozi k207
document.getElementById(koment).style.borderColor='#AAFF00'; //zde se nic nestane :(
Tohle taky ne document.getElementsByTagName('div')[koment].style.borderColor='#AAFF00'; |
||
| panther Profil |
#4 · Zasláno: 10. 10. 2010, 20:47:08
Medvídek:
přidáváš sice krásně borderColor, ale je tam nějaký rámeček, který by se měl zbarvit do zelena? Jestli bys neměl místo borderColor měnit celý border (ať už přímo nebo přes třídu). |
||
| Str4wberry Profil |
#5 · Zasláno: 10. 10. 2010, 20:47:24
A
border-style a border-width už ten <div> má? Samotný borderColor rámeček neudělá.
|
||
| Medvídek Profil |
#6 · Zasláno: 12. 10. 2010, 04:33:48 · Upravil/a: Medvídek
Str4wberry:
Má nastaveno border: 1px solid white; chci změnit barvu divu na jinou. Já to samozřejmě zkoušel i s display='none', abych si byl jistý, že v tom chyba není :( |
||
| Chamurappi Profil |
#7 · Zasláno: 12. 10. 2010, 11:00:41
Reaguji na Medvídka:
Voláš ten skript v době, kdy ten element, jehož okraj chceš měnit, už existuje, nebo někde v hlavičce? „zde se nic nestane :(“ Prohlížeče mají chybové konzole. Nechceš-li rovnou zmínit odkaz na živou ukázku, mohl bys alespoň lépe popsat projev nefunkčnosti. Mimochodem, doporučuji spíš měnit třídu (tedy className) a konkrétní vzhled určit v externím CSS.
„document.location.hash.replace(new RegExp('^(.*)#'), '');“ Místo toho by stačilo location.hash.substr(1). Na začátku hashe je vždy jen mřížka.
Reaguji na Str4wberryho: Jen upřesním: „případně něco jako document.getElementsByTagName("nějakáZnačka")[idecko]“ … kde je idecko pořadové číslo elementu s daným názvem značky, nikoliv atribut id hledaného elementu.
|
||
| Medvídek Profil |
#8 · Zasláno: 12. 10. 2010, 13:36:43 · Upravil/a: Medvídek
Chamurappi:
Děkuju, nenapadalo mě, že ten skript musím mít až pod komentářema a né nad nima. Hodil sem ho pod ně a už funguje :) |
||
|
Časová prodleva: 16 let
|
|||
0