- Apple iPhone 16 Pro - rutinvizsga
- Samsung Galaxy A56 - megbízható középszerűség
- Nothing Phone (3a) és (3a) Pro - az ügyes meg sasszemű
- One mobilszolgáltatások
- Mi nincs, grafén akku van: itt a Xiaomi 11T és 11T Pro
- VoLTE/VoWiFi
- Mobil flották
- Xiaomi 15 - kicsi telefon nagy energiával
- Google Pixel 8a - kis telefon kis késéssel
- Samsung Galaxy S25 - végre van kicsi!
-
Mobilarena
JavaScript != Java (A JavaScript nem összekeverendő a Javával, két különböző programozási nyelvről van szó!)
Új hozzászólás Aktív témák
-
Sk8erPeter
nagyúr
válasz
Speeedfire #1957 üzenetére
Nincs olyan, hogy document.src .
Csak képnek van src attribútuma.onmouseout="f()\;"
Miért akartad többször is escape-elni a pontosvesszőt?Amit j0k3r! írt, az jó lesz.
-
Sk8erPeter
nagyúr
válasz
burgatshow #1946 üzenetére
Nem volt túl világos (számomra legalábbis) a feladatspecifikációd: a sorok vagy az oszlop szerint szeretnéd eldönteni a rangot? Ha pl. oszlop, azonbelül is melyik szerint? Vagy mindegyikre külön egy-egy rang függvényt szeretnél ráküldeni?
Valami konkrétumot szőjj már bele (mik ezek az adatok egyáltalán (azonkívül, hogy számok), melyik oszlopban/sorban mi van, stb.), mert én nem vágom, mit szeretnél.Ja, meg azt is megírhatnád, Te mire jutottál, hogy ne nekünk kelljen az egészet implementálni.
-
Sk8erPeter
nagyúr
Érdemes elolvasni, jó programozási gyakorlatot mutat be JavaScriptre:
Refactoring to Unobtrusive Javascript -
Sk8erPeter
nagyúr
válasz
Brown ügynök #1943 üzenetére
Ja, de sztem kb. erre utalt PazsitZ is, meg h valami el van cseszerintve a kódban, ami felüldefiniálja a beállításokat.
Amit írtál, hogy módosítod a nevet elso_odd-ra, az nem megoldás, mert úgy ha azt akarod, hogy az elso és az odd osztály tulajdonságai is vonatkozzanak rá, be kell másolni mindkét helyről az ominózus tulajdonságokat, ez meg felesleges kódnövelés.
Itt van egy példa egy színezett táblázatra: [link]. -
Sk8erPeter
nagyúr
válasz
Brown ügynök #1939 üzenetére
És ha már megpróbáltunk segíteni, elárulnád, mit kellett "figurázni"?
-
Sk8erPeter
nagyúr
válasz
Brown ügynök #1935 üzenetére
Na az úgy viszont nagyon nem jó, mert az nem valid.
Mi az oka, hogy így szeretnéd létrehozni? Ha úgy használod, ahogy írtad is - class="elso odd" -, az úgy teljesen jó, mert mindkét osztály (elso ill. odd) tulajdonságai vonatkozni fognak az adott elemre. A módosítási szándékod viszont helytelen. -
Sk8erPeter
nagyúr
válasz
Brown ügynök #1933 üzenetére
akkor pl. a += helyett csak simán = ?
Már ha jól értem a kérdést.
Amúgy meg nem "add" és "even", hanem "odd" (páratlan) és "even" (páros). -
Sk8erPeter
nagyúr
válasz
Siriusb #1928 üzenetére
Úgy néz ki, hogy ez egy fos.
Bocs, de nem olvastam el előtte, csak gyorsan átfutottam rajta, Google-keresés eredménye volt ez a találat.
Ha már ilyen kacifántos megoldást akar, akkor ez az, ami működik, ide felraktam (tök feleslegesen bonyolítja az életet): [link]
vagy akkor már ez értelmesebb: [link]
(mellesleg ajánlom ezt az oldalt próbálgatásra!!)
Szóval totál idióta módszereket próbál használni a cikkíró. Felejtős.
Bocsesz, ilyen fos cikket nem linkelek legközelebb, csak olyat, amit tényleg átolvastam. Most, hogy így nézem, ez a cikk inkább arra jó, hogy összekavarjon.De írj továbbra is, ha felmerül valami kérdés.
-
Sk8erPeter
nagyúr
válasz
Siriusb #1925 üzenetére
Itt a selector csak egy elnevezés, tök mindegy, amúgy lehetne "selector" helyett "pityipalko" is, csak érzékeltetni akartam, hogy az mi lesz, itt láthatod, hogy nagyjából mit is jelent az, hogy "selector": [link]
Ezt rakod a rövidített (jQuery szó helyetti) $ "kulcsszó" mögé, zárójelben, ezzel kiválasztod a dokumentum megfelelő részét, mint egy objektumot. Erről elméletben sokat lehetne regélni, de igazából gyakorlással lehet ezt a legjobban megérteni.A függvények létrehozására amúgy lehet használni az extend-et is, de ezekről itt van egy viszonylag áttekinthető cikk: [link], meg itt: [link], meg itt: [link].
Remélem ez segít!
-
Sk8erPeter
nagyúr
válasz
Siriusb #1923 üzenetére
Van még egy lehetséges változat, ami működik is:
$(document).ready(function(){
$(document).neBenazz( $('a[href$=.pdf]') );
});
$.fn.neBenazz = function( selector ) {
$(selector).each(function(){
$(this).attr( 'title', $(this).attr('href') );
});
};De ez szerintem feleslegesen kacifántos túlbonyolítás, inkább a korábbi változatnak megfelelőt használd.
Ilyesmire is szükség lehet adott helyzetekben, de ez most nálad nem az a helyzet.
-
Sk8erPeter
nagyúr
válasz
Siriusb #1921 üzenetére
Ha már ilyen módon hoztad létre a függvényt:
$.fn.neBenazz = function() {
// ...
}Akkor annak megfelelően is hívd meg, pl:
$('#blabla').neBenazz();Ez így működik:
$(document).ready(function(){
$('a[href$=.pdf]').each(function(){
$(this).neBenazz();
});
});
$.fn.neBenazz = function() {
$(this).attr( 'title', $(this).attr('href') );
};Ha lehet, maradj a jQuery-szintaktikánál, ne keverd.
-
Sk8erPeter
nagyúr
+(#1919): Személy szerint eddig azért nem válaszoltam, mert eléggé utálom ezt a window.open()-es módszert, és nem tudom, Chrome-ban egyáltalán el lehet-e tüntetni ilyenkor a location bart, ezenfelül szerintem a felhasználó akarata ellenére történő ablakbezárás is gáz.
Engem legalábbis idegesít, ha egy honlapon helyettem okoskodnak.Az alábbi kód egy része innen származik: [link], én csupán kiegészítettem.
De én a helyedben más módszert választanék, annyi igényes módszer létezik ma már, ne használj ilyen elavult fos módszert, mert ez így csak gányolásnak néz ki, ráadásul biztonsági okokból nem is minden böngészőben működik az, amit szeretnél. Nem muszáj megfogadni, ez csak az én véleményem felhasználói és fejlesztői szempontból egyaránt.<script type="text/javascript">
<!--
// http://javascript-array.com/scripts/window_open/
function popup(url, fullscreen)
{
var width = (fullscreen)?screen.width:1020;
var height =(fullscreen)?screen.height:750;
var params = 'width='+width+', \
height='+height+', \
directories=no, \
location=no, \
menubar=no, \
resizable=no, \
scrollbars=1, \
status=no, \
toolbar=no';
//ablaknév
var window_name = "Win" + Math.floor(Math.random()*1000001);
//új ablak megnyitása
var newwin=window.open(url, window_name , params);
//fókusz
if (window.focus) {newwin.focus()}
// eredeti ablak bezárásához:
// http://csharpdotnetfreak.blogspot.com/2008/11/javascript-windowclose-does-not-work-in.html
// nem tesztelt
// http://forums.mozillazine.org/viewtopic.php?t=527665
return false;
}
var link_to_popup = 'http://google.hu';
// link_to_popup = "http://**********/forms/frmservlet?config=mega_java";
// -->
</script>Lehetséges felhasználási módjai:
<a href="" onclick="popup(link_to_popup, true); return false;">
Fullscreen popup window
</a>
<br /><br /><br />
<a href="" onclick="popup(link_to_popup); return false;">
popup window
</a> -
Sk8erPeter
nagyúr
válasz
Siriusb #1906 üzenetére
Tényleg érdemes.
A jQuery nemcsak azért jó, mert a különböző böngészők különböző hülyeségeinek nagy többségére fel van készítve (nem neked kell megírni a kerülő megoldásokat), hanem mert jóval tömörebb, átláthatóbb, szebb kódot eredményez, az AJAX-kezelő API is nagyon kényelmes, így összességében bőven megtérül az arra fordított idő, amíg nagyjából elsajátítod a használatát.Itt van egy elég jó puska hozzá, ami sok lényeges metódus használati módját tartalmazza, meg persze a hivatalos honlapja ajánlott, mert elég szemléletes, és jól dokumentált anyag van fent.
A példák is elég jók: pl. ha a slideToggle() metódus használatára vagy kíváncsi, egyből meg is tudod tekinteni a gyakorlatban: [slideToggle()].
-
Sk8erPeter
nagyúr
válasz
Siriusb #1904 üzenetére
Már eleve az initAll() függvény is problémás, mivel kétszer fut le a cookieCheck() függvény!
function initAll() {
var visited;
visited = cookieCheck();
if (!cookieCheck()) {
checkForNewContent(document.links,visited);
}
}Az if (!cookieCheck()) helyett if (!visited) kellene, hogy álljon.
Abban sem látom a logikát, hogy épp a needAlert false értékére fogsz alert ablakokat feldobni... -
Sk8erPeter
nagyúr
válasz
Medcomp #1882 üzenetére
Én clearbox-szal most kipróbáltam, és működött (mondjuk klikkelésre az alatta lévő kép a következőre ugrik, ahogy eddig is volt, de azt most nem keresgéltem, hol kell megszüntetni):
ahol van a slideshow azonosítóval rendelkező div, ott kiegészíted:
<div id="slideshow" class="slideshow" onclick=" CB_Open('href='+ $(this).find('img') .attr('src') );"></div>Így megnyitja a külön keretben azt a képet, amire épp kattintasz.
-
Sk8erPeter
nagyúr
válasz
Medcomp #1876 üzenetére
Nézd át ennek az oldalnak a forráskódját, ott elég jól látszik, hova kell betenni!
Amiket itt írnak, betetted az oldalad <head> részébe?
<script type="text/javascript" src="js/jquery-1.3.2.js"></script>
<script type="text/javascript" src="js/jquery.galleriffic.js"></script>
<!-- Optionally include jquery.history.js for history support -->
<script type="text/javascript" src="js/jquery.history.js"></script>
<script type="text/javascript" src="js/jquery.opacityrollover.js"></script>DE nagyon fontos, hogy ezeket töltsd is le a megfelelő helyekről (jQuery, jQuery History Plugin, stb.), és stimmeljen az elérési út! Tehát vagy tedd a "js" nevű könyvtárba, vagy írd át itt a fentiben a neked megfelelő elérési útra. (pl. src="pityipalko_konyvtar/jquery-1.3.2.js" )
Az alábbi is benne lehet, de ez már a <body> részben, amúgy opcionálisak; ha a "thumbs" div-en belül az alábbi módon csinálod, akkor ahogy írják, így kell minden egyes thumbnailre (a thumbs-on belülieket (<ul class="thumbs noscript">-en belülit) kell ismételgetni minden kisképre, a többit ne ismételgesd):
<div id="controls"></div>
<div id="loading"></div>
<div id="slideshow"></div>
<div id="caption"></div>
<div id="thumbs">
<ul class="thumbs noscript">
<li>
<a class="thumb" name="optionalCustomIdentifier" href="path/to/slide" title="your image title">
<img src="path/to/thumbnail" alt="your image title again for graceful degradation" />
</a>
<div class="caption">
(Any html can go here)
</div>
</li>
... (repeat for every image in the gallery)
</ul>
</div>Ezenkívül tedd be azt a hosszú
jQuery(document).ready(function($) {
...
}részt is a <head> részbe (vagy teheted a thumbs div UTÁN is, de ha nem a <head>-ben van, akkor mindenképp utána legyen) így:
<script type="text/javascript">
<!--
jQuery(document).ready(function($) {
...
}
// -->
</script>Kérdezz, ha valami nem világos.
-
Sk8erPeter
nagyúr
válasz
WonderCSabo #1868 üzenetére
<script type="text/javascript">
<!--
window.onload = function(){
document.getElementById("id1").getElementsByTagName("a")[0].href = "http://prohardver.hu";
};
// -->
</script>Itt most csak annyira figyeltem, hogy az "id1" azonosítóval rendelkező lista legelső elemében (0. index) található elemnek kell megváltoztatni a href értékét. Szóval ez a listának első hivatkozására működik.
Az általad leírtaknak ez megfelel. -
Sk8erPeter
nagyúr
válasz
Speeedfire #1798 üzenetére
sumbit?
Vegyük azt, hogy van egy ilyened:
<div id="ezt_akarod_megjeleniteni" style="display:none;">
<h1>BLABLABLA</h1>
</div>
<!-- ......... -->
<input type="submit" name="elkuld" value="Elküld!" id="tokmindegy" />utána meg következik a jQuery-rész:
<script type="text/javascript">
$("#tokmindegy").click( function (){
$('#ezt_akarod_megjeleniteni').fadeIn("slow");
return false; //így még nem küldi el a form-ot
}
);
</script>A fadeIn-nel kicsit animálva is lesz
-
Sk8erPeter
nagyúr
Majdnem tökéletes, amit írtál, csak annyi a baj, hogy a JS kis- és nagybetűérzékeny, és nálad az a rossz, hogy nagy kezdőbetűvel írtad a colort (Color-t írtál), tehát így jó (pl. piros színnel):
document.getElementById('id').style.color='#FF0000';
Ilyenkor, ha nem működik, érdemes megnézni a helyes szintaktikát pl. a w3schools megfelelő oldalán, pl. a color tulajdonságé itt van: [link]
JavaScript syntax: object.style.color="#FF0000" -
Sk8erPeter
nagyúr
válasz
Adrian Mole #1774 üzenetére
CMS-t még nem használtam, eddig saját kódokkal dolgoztam, így nem tudom, az általad használt sablonban pontosan így működnek-e. Mindenesetre alapból így működnie kell.
Ha jól értem a dolgot, akkor az általad említett "számszámszám" alapból mögé kerül, az statikus, nem változik (vagy mégis, mert generálódik?), de nem említetted, hogy a címnek egészen pontosan hogyan kell kinéznie.
Pl. lehetne akár ilyen is:
http://valami.hu/?szam=666
vagy csak simán
http://valami.hu/666
és így tovább.
Az utóbbi pl. így nézne ki a korábban említett módon:
<?php
$valtozo='http://valami.hu/';
?>
<!-- ...blabla... -->
<a href="<?php echo $valtozo; ?>666">Link</a> -
Sk8erPeter
nagyúr
válasz
Adrian Mole #1771 üzenetére
anélkül, hogy az eredeti hsz.-edet elolvastam volna, egész pontosan hogy hívod meg a PHP-részét? Nem vágom a kódodat...
pl. van egy ilyened:
<?php
$valtozo = 'http://stbstb';
?>
<!-- ...blabla... -->
<a href="<?php echo $valtozo; ?>">Link</a>
A href utáni részben is jelezni kell, hogy ott php-kód kezdődik. Persze ha valami sablon, akkor azt most így nem tudom, hogyan működik nálad. Nem tudom, mi az a "számszámszám". -
Sk8erPeter
nagyúr
Igazad van, abban a hozzászólásban már kicsit előrerohantam, ott arról kezdtem beszélni, hogy ha már feltöltötte az átalakított címet az adatbázisba, akkor annak megfelelően hogyan tudja lekérni az adatot. Azért említettem meg, mert azt hittem, akkor már világos volt, hogy ez nem kliensoldali feladat, de tényleg tök félreérthetőek voltak a hsz.-eim, valószínűleg először félre is értettem a szándékot, sorry.
-
Sk8erPeter
nagyúr
Eddig is értettem, úgy látszik, ez neked nem tűnt fel...
Pont arról beszéltem korábban is, hogy ez nem kliens oldalon kell, hogy történjen, pont azért, amit később is írsz, mert így a cím szabadon módosítható, és mivel ez így van, minimum egy ellenőrzés szükséges még szerver oldalon, akkor meg totál értelmetlen volt az egész. Azt próbáltam az értésére adni, hogy ha már úgyis megadja a júzer a címet, akkor abból PHP-vel épp az általa mutatott kód segítségével legenerálható a cím, és eltárolható adatbázisba, teljesen felesleges és veszélyes ezt kliensoldalra bízni, arról nem is beszélve, hogy ennek a címnek a legenerálása régen rossz, ha releváns időt vesz igénybe szerveroldalon... -
Sk8erPeter
nagyúr
válasz
Speeedfire #1755 üzenetére
Vannak olyan szerverek, ahol nincs engedélyezve a .htaccess használata (bár sztem elég gáz), érdemes lenne zaklatnod a szolgáltatódat ez ügyben.
Ha az már megy, akkor semmi szükség nincs a kliensoldali dologra (mivel ennek a feladatnak a végrehajtása nem is kliensoldalon kell, hogy történjen), hanem ezt az átalakított címet feltöltöd az adatbázisba, az ennek a címnek szánt mezőbe (pl. url nevű mező az adattáblában) így egy GET paraméterként fogja értelmezni a .htaccess miatt, ezt lekezeled PHP-val, és MySQL-lel eszerint kérdezed le a szükséges adatot.(csak egy lehetséges példa: SELECT * FROM tabla WHERE url = 'sorosuveg-gyartas-olcson-es-gyorsan'; )
-
Sk8erPeter
nagyúr
válasz
Speeedfire #1751 üzenetére
Tehát most az a cél, hogy keresőbarát URL-eket készíts?
Ez olyan dolog, amit szvsz szerveroldalon kellene elvégezni pl. PHP és .htaccess segítségével, nem nagyon értem, ezt milyen módon szeretnéd elintézni kliensoldalon. Igazából a célt nem értem: hogyan és milyen célból szeretnéd generálni? Most ha jól tudom, valami linkgyűjtő oldalon dolgozol, ott meg nyilván nyúlkálsz adatbázishoz, tehát ott pl. lehetne tárolni az azonosítókhoz keresőbarát URL-t, de egyéb módon is el lehet intézni - de ha jobban elmagyarázod, mi a végcélod, akkor lehet, hogy jobban átlátom. -
Sk8erPeter
nagyúr
válasz
Azazello- #1730 üzenetére
Hali!
A readonly attribútum XHTML-ben helyesen így néz ki (a readonly="" helyett):
readonly="readonly"
w3schools: HTML <input> readonly Attribute</input>
Ez a lezárás helytelen, magában az input elemben kell odatenni a lezárást, korábban jól írtad:
<input ... />for (i=0;i<names.lenght;i++)
lenght -> length
nem mindegy...getNames() a függvény neve, Te meg getName() névvel hívod meg...
A radio elemeknél legyen a name attribútum azonos, hogy ne lehessen mindkettőt kiválasztani, hanem közülük kelljen az egyiket választani.
Ezenkívül nem kell külön div-be rakni, gondolom nem célod elválasztani őket. Nem is ajánlott, mert abból csak problémáid lehetnek.
Az onselect esemény itt helytelen, ugyanis az a következő elemekre használható:
<input type="text">, <textarea>
Legyen helyette inkább onclick.
példa (getName, getNumber fv.nevekkel):
<div id="middle_container">
<input type="radio" onclick="getName();" id="name_number" name="name_or_number" />Names<br />
<input type="radio" onclick="getNumber();" id="number_name" name="name_or_number" />Numbers
</div>Ezenkívül számomra nem túl logikus, hogy pont a Names mezőnél getNumber(); függvényt hívsz, amikor ott gondolom épp a névre vagy kíváncsi, a Numbers résznél meg getNames() függvényt szeretnél hívni - ami mellesleg rosszul van megírva.
function getNumber(){
var x= document.getElementById("name_number");
document.write(numbers[i] + "<br />");
}Nem értem, mit akartál ezzel a függvénnyel, konkrétan semmi értelme.
Ugyanis numbers-nek mi az i-edik eleme? Te asszociatív tömböt használsz, pl. nincs olyan, hogy numbers[4], mivel csak sztringekkel éred el az elemeidet, pl. numbers["Shiela"]
var numbers = nev Array();
nev?helyette inkább new...
text_imput
-> text_input
Ezeket az elírásokat talán átnézhetted volna, mielőtt írsz a topicba...Azt sem értem, egyáltalán a szövegmezőbe beírtakat hogyan akarod elérni, ha semmi ilyen nincs a kódodban...
Na, a lényeg, hogy készítettem egy jól működő változatot (kipróbáltam):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Numbers</title>
<!-- JS -->
<script type="text/javascript">
<!--
var phonebook = new Array();
phonebook["Shiela"] = "3453 456546 787";
phonebook["Gerard"] = "2311 345455 335";
phonebook["David"] = "8786 578575 555";
function getData(what){
var text_input=document.getElementById("text_input").value;
var text_output=document.getElementById("text_output");
var found=0;
for(var name in phonebook){
var number=phonebook[name];
if(what==null || what=="number"){ //ha nem adtunk meg paramétert (vagy number-t adtunk meg), akkor alapértelmezettként a névhez tartozó számot fogja kiírni
if(name==text_input){
text_output.value=number; //szám kiírása
found++; //találtunk
break; //felesleges továbbmenni
}
}
else{ //egyébként (ha bármilyen egyéb paramétert megadtunk) a számhoz tartozó nevet fogja kiírni
if(number==text_input){
text_output.value=name; //név kiírása
found++; //találtunk
break; //felesleges továbbmenni
}
}
}
if(found==0){ //ha nincs találat
text_output.value=(what==null || what=="number")?"Nincs ilyen név a telefonkönyvben.":"Nincs ilyen szám a telefonkönyvben.";
}
}
// -->
</script>
</head>
<body>
Feladat: "a nev beirasa utan a radiobutton segitsegevel ha a numbers-re kattintunk, ki kellene, hogy adja a nevekhez tartozo telefonszamokat."
<div id="top_container">
<input type="text" name="text_input" id="text_input" />
</div>
<div id="middle_container">
<input type="radio" onclick="getData('name');" id="name_number" name="name_or_number" />Names<br />
<input type="radio" onclick="getData('number');" id="number_name" name="name_or_number" />Numbers
</div>
<div id="bottom_container">
<input type="text" readonly="readonly" name="text_output" id="text_output" />
</div>
</body>
</html>A CSS-részt kiszedtem, az most úgysem lényeges.
Remélem megfelel.
-
Sk8erPeter
nagyúr
Én így oldanám meg az általad használt nevekkel:
A selectnél onchange="check(this)":
<select ... onchange="check(this)">A függvény pedig:
function check(stuff){
var selected=stuff.selectedIndex;
if(selected==1){
document.getElementById('info').style.display = 'none';
}
else{
document.getElementById('info').style.display = 'block';
}
} -
Sk8erPeter
nagyúr
válasz
HUNNIA1920 #1719 üzenetére
Sajnos most nem nagyon van időm megcsinálni, de esetleg innen ötletet meríthetnél, ez egy puzzle, amiben tili-tolizza az elemeket, nálad annyi lenne a különbség, hogy random módon határoznád meg az elemek pozícióját: [link], itt a .js: [link], ezenbelül többek közt a function set(id), ami felel a tologatásért, Te használd a Math.random() függvényt, ahogy itt látható: [link]
Esetleg még az is megoldható, hogy ha a kártyalapokhoz különböző képek tartoznak, és azt úgyis el kell tárolni, akkor olyan többdimenziós tömbbe pakolni, ahol az egyik elem a kép elérési útja, másik az aktuális pozíció (ha meg kell jegyezni a kártya pozícióját). Rengeteg megoldás létezik. -
Sk8erPeter
nagyúr
válasz
firewolf #1711 üzenetére
A linkelt javascript-fájlban ott van a megfelelő sor:
if(!this.ics&&!this.no_c)
document.write('<div align="center"><input id="prev'+this.issid+'" disabled type="button" value=" << " onclick="iss['+this.issid+'].changeimg(false, \'nav\');">\n'+
(this.no_auto? ' ' : ' <input id="gostp'+this.issid+'" type="button" value=" Stop " onclick="iss['+this.issid+'].gostop(this);">\n')+
' <input id="next'+this.issid+'" disabled type="button" value=" >> " onclick="iss['+this.issid+'].changeimg(true, \'nav\');">'+(this.jumpto? brs+'Jump to: <input disabled type="text" size="'+this.imgs.length.toString().length+'" id="goto'+this.issid+'" onkeydown="iss['+this.issid+'].jumper(event);"><input id="go'+this.issid+'" disabled type="button" onclick="iss['+this.issid+'].jumper();" value="GO">' : '')+'<\/div>')
...erre keress rá.
Aztán megoldhatod úgy, h a <div align="center">-hez beteszel azonosítót,
pl. így: <div align="center" id="lepteto">
Utána meg CSS-sel adod meg a helyét:
#lepteto{
/* ... */
}Hogy ehhez mennyire értesz, az nem derült ki.
De egy kis gányolással is megoldhatod, pl.:
a <div align="center">-t lecseréled ilyenre:
<div style="float:right; position:absolute; top: 10px; right:330px;">Vagy belerakod az egész képnézegetőt egy táblázatba, és a jobb oldali cellába rakod bele a <div>-et, és még sorolhatnám, számtalan megoldás van.
-
Sk8erPeter
nagyúr
Hali!
Azért nem működik, mert így több sorba bontja a forráskódot is, stringeknél ez pedig csak úgy működik, ha a sorok végére teszel egy \-t.
A Te megoldásod helyett én így csinálnám meg, kipróbáltam, és tök jól működik (ahogy szeretnéd is):
formázva pakold bele egy stringbe a tartalmat, úgy, hogy a sortörés karaktert ('\n') átalakítod <br /> sortöréssé:function createDiv(menupont) {
//...
var divTag=document.getElementById("divTag");
switch (menupont)
{
case 'galeria' :
var string_to_print = '<?php echo strtr( file_get_contents('galeria.html'), array("\n" => "<br />") ); ?>';
divTag.innerHTML=string_to_print;
break;
case 'linkek' :
var string_to_print = '<?php echo strtr( file_get_contents('linkek.html'), array("\n" => "<br />") ); ?>';
divTag.innerHTML=string_to_print;
break;
//...
}
} -
Sk8erPeter
nagyúr
"ennek most csak a teszt kedvéért van height és width értéke, ezeket 0-ra fogom állítani , mert hiddenként fogom használni"
Ez rossz megoldás lenne.
Inkább állítsd a CSS-tulajdonságával display:none;-ra, és el van tüntetve.
Példa:
document.getElementById("iframe_neve").style.display="none";Az általad kérdezett konkrét példát én így oldanám meg egyszerűen (kipróbáltam, nálam elég jól működik egy egyszerű táblázat sorai tartalmának lekérdezésére):
ezt pakold be a HTML-dokumentumod <head> részébe:<script type="text/javascript">
function iframe_td(iframe_neve){
var get_iframe=document.getElementById(iframe_neve);
var get_tds = get_iframe.contentWindow.document.getElementsByTagName("td");
var ide_ird=document.getElementById("ide_ird");
for(var i=0;i<get_tds.length;i++)
ide_ird.innerHTML+=get_tds[i].innerHTML;
}
</script>Használni pedig úgy tudod, hogy mondjuk van egy gombod (itt "blabla" néven), amivel meghívod a függvényt, és van egy HTML-elemed (pl. egy <div>), aminek az azonosítója (id) "ide_ird", valamint természetesen maga az iframe, aminek az azonosítója itt "egy_iframe":
...
<!-- ez maga az iframe -->
<iframe src="table.html" id="egy_iframe"></iframe>
...
<!-- ezzel a gombbal hívod meg a függvényt: -->
<input type="button" value="blabla" onclick="iframe_td('egy_iframe');" />
...
<!-- ide fogja írni az eredményt -->
<div id="ide_ird"></div>Remélem így tiszta, ha valami nem világos, kérdezz nyugodtan.
-
Sk8erPeter
nagyúr
Öröm.
Valahogy úgy csináltam volna, hogy sima HTML-elemként létrehoztam volna a menüpontokat, majd a CSS display:none; tulajdonságával elrejtettem volna, és amikor szükséges (pl. egér fölévitelekor, kattintáskor, stb.), JavaScripttel megváltoztattam volna a stílust display:block;-ra. Vagy akár a CSS :hover pszeudoosztályával is lehet ilyet csinálni, hogy magát a tartalmat változtatod (content tulajdonság), habár ezzel a különböző animációkat nem igazán lehet megoldani, ahhoz ismét JavaScript szükséges, de bármi megoldható.
Talán utóbbi módszerekkel a Google is jobban tudja indexelni a menüpontokat. -
Sk8erPeter
nagyúr
Így persze, hogy nem működik, mivel az idézőjelek többszöri előfordulása miatt olyan, mintha már befejezted volna a szöveget...
Akartam is mondani, hogy az idézőjel vs. aposztróf különbségekre figyelj, de azt hittem, feltűnik, hogy direkt aposztróffal írtam a sajátomat.Na, tehát cseréld ki az <img> tag előtt és mögött lévő idézőjelet egy szimpla aposztrófra!
['<img src="kepek/girls_2.png" width="181" height="25">', "girls.html"], -
Sk8erPeter
nagyúr
Hát akkor egyszerűen az "xxx"-et cseréld le, pl.
'xxx <img src="itt_a_keped.jpg" width="200" height="100" alt="..." /> itt a vége...'Ha jól oldottad meg, akkor ennek működnie kell.
Mellesleg ezt végül is nem tudom, minek JavaScripttel megoldani, dehát ízlések és pofonok különböznek. -
Sk8erPeter
nagyúr
Kicsit írd körül jobban, milyen módon jeleníted meg végül a kiírt szöveget!
document.write metódussal? innerHTML-lel?
A másik topicban azt írtad, ez a menüd már nagyjából működik, kiírja, amit szeretnél, csak a képet szeretnéd megjeleníteni a szöveg helyett, ez nem nehéz, de tudni kellene, hogy milyen módon jeleníted meg a tartalmat. -
Sk8erPeter
nagyúr
válasz
Zoli1222 #1695 üzenetére
Ide is feltettem a kódot, így innen letölthető: [link]
Az onclick esemény az option-re nem használható, arra csak az onchange való!
A kódodban ennek a résznek:
...onChange="this.options[this.selectedIndex].value,'_top'"
röviden és tömören semmi értelmeSemmit nem csinálsz onchange eseményre.
-
Sk8erPeter
nagyúr
válasz
Zoli1222 #1695 üzenetére
De, természetesen lehet.
Először elkezdtelek volna rávezetni, de aztán úgy gondoltam, ki is próbálom, úgyhogy ha már megcsináltam, ne vesszen kárba.Itt látható alább a komplett működő kód (valid XHTML 1.0 Strict résszel együtt
):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="hu" lang="hu">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>JavaScripttel változtatott listák</title>
<script type="text/javascript">
<!--
var napok = new Array();
napok["Hétfő"] =new Array("1","2","hétfő vége");
napok["Kedd"] =new Array("3","4","kedd vége");
napok["Szerda"] =new Array("5","6","szerda vége");
napok["Csütörtök"] =new Array("7","8","csütörtök vége");
napok["Péntek"] =new Array("Pénteken nincs óra! :)");
function betolt(opcio)
{
for(var nap in napok)
{
if(opcio==nap){
var ora_lista=document.getElementById('orak_lista');
ora_lista.innerHTML = '<option selected="selected">Válaszd ki az órát a listából!</option>';
for(var ora in napok[nap]){
ora_lista.innerHTML += '<option>'+napok[nap][ora]+'</option>';
}
}
}
}
// -->
</script>
<style type="text/css">
form{
margin:40px;
}
</style>
</head>
<body>
<form action="">
<div>
<select name="lista" size="1" onchange="betolt(this.options[this.selectedIndex].value);">
<option selected="selected">Melyik nap legyen...</option>
<option>Hétfő</option>
<option>Kedd</option>
<option>Szerda</option>
<option>Csütörtök</option>
<option>Péntek</option>
</select>
</div>
</form>
<form action="">
<div>
<select id="orak_lista" size="1">
<option selected="selected">Előbb valaszd ki a napot!</option>
</select>
</div>
</form>
</body>
</html> -
Sk8erPeter
nagyúr
válasz
Zoli1222 #1689 üzenetére
Máshol viszont hasznos lehet, így nem árt, ha tisztában vagy a működésével!
Pl. ott jöhet jól, ahol a látogató előbb-utóbb szinte biztos, hogy látni fog valamilyen képet, és akkor jó, ha egyáltalán nem kell várnia a betöltődésére (azt minden júzer szereti, ha gyorsan betöltődik a tartalom). -
Sk8erPeter
nagyúr
válasz
Zoli1222 #1687 üzenetére
Van egy ilyen sorod a head részben lévő scriptnél:
//kepek = new Array("Kecskemét.jpg","Szeged.jpg","Szekszárd.jpg");
Szedd ki a kommentet jelző két perjelet.
A body-ban van egy ilyened:
<script>
kepek = new Array("Kecskemét.jpg","Szeged.jpg","Szekszárd.jpg");
</script>
Ezt töröld ki. (A head-ben lévő scriptben legyen az előtöltés.
Még hozzátennék az egészhez annyit, hogy illik deklarálni a változókat, mielőtt használod, JavaScriptben illik elétenni a "var" kulcsszót, pl. var megye=new Array(...);Innentől az előbb mutatott példa alapján nem értem, melyik része nem világos.
A példám analógiájára esetedben a for ciklus a következő:
//előtöltés
for(var i=0;i<kepek.length;i++){
var img=new Image();
img.src=kepek[i];
}
Most itt a var img helyett lehet nálad felőlem var Pityipalko is, csak ennek megfelelően használd utána is (Pityipalko.src=...;)Ha meg ezt az egészet onload eseményhez szeretnéd kötni, akkor pakold bele ezt a for ciklust egy függvénybe (pl. function elotoltes(){...} ), és a body-nál pakold bele az onload-ba a függvény meghívását:
<body onload="elotoltes();">Még egy megjegyzés:
van a function kiir(i) függvényed, ezt így hívod meg: kiir([0]), és bár ez működik, alapvetően nem "szabályosan" hívod meg, helyette írd simán így: kiir(0), mivel ilyen módon szerepel a függvényed fejlécében is... Te most nem egy tömböt szeretnél átadni paraméterként, hanem csak egy számot.Ha meg szeretnéd figyelni, hogy működik-e az előtöltés, akkor a HTML-részből átmenetileg töröld ki az <img ...> tageket, hogy a böngésző ne töltse be a képeket akkor is, ha a JavaScript függvényed egyébként nem működik (jelen esetben egyébként nem is értem, minek az előtöltés, amikor a böngésző így is-úgy is betölti az általad beillesztett képeket az <img ...> tagek miatt, ahol megadod az src-nél az elérési utat!!
), majd pl. a Firebug (FF-beépülő) program NET fülénél figyeld meg, hogy megtörténik-e a betöltés. Itt ugyanis nyomon követhető többek között az is, hogy milyen képeket tölt be (és mennyi idő alatt!) a böngésző az oldal megnyitásakor.
-
Sk8erPeter
nagyúr
Akkor tedd be ezt az egészet egy függvénybe, a függvényt pedig a <head> tag alá (<script>-be), és hívd meg a függvényt akkor, amikor az ablak betöltődött - ez pedig az "onload" esemény; pl. beteheted a <body> taghez:
<body onload="ez_a_fuggvenyed();">
...Ja, és document.write() helyett használhatod a document.getElementById('valami').innerHTML = ... -t is.
-
Sk8erPeter
nagyúr
Ez pontosan így van, nem is kérdés. Pl. hiába vannak programozásról előadások az egyetemen vagy akárhol (vagy hiába olvas róla valaki könyvet), ha valaki nem gyakorol, akkor úgyis megbukik az első számonkérésen.
Erre mondtam én is, hogy a suli önmagában semmit sem ér, és ez főleg az informatikára igaz, hiába tanulod meg az elméletet, úgyis a gyakorlati alkalmazás a lényeg.
-
Sk8erPeter
nagyúr
Tudtommal a srác középsuliba jár, majd később rájön, hogy önképzés, saját tudása bővítése nélkül a suli önmagában semmit sem ér, de ezt finomabban is meg lehet fogalmazni.
Inkább biztatni kellene arra, hogy szorgalmasan képezze magát, nem azt kéne kidomborítani, hogy válasszon más szakmát, ha nem megy neki - biztos menni fog neki is később, ha sokat gyakorol. Kicsit máshogy hangzik.Eleinte jólesik az embernek egy kis segítség, egy kis rugdosás, hogy elinduljon az úton, aztán már magától is könnyebben rájön a dologra. Inkább kérdezzen sokat, mint hogy elmenjen a kedve!
-
Sk8erPeter
nagyúr
válasz
Zoli1222 #1659 üzenetére
Szívesen!
Na, most látom, hogy azt elfelejtettem odaírni az előbb, hogy kell egy olyan elem is, amibe belerakod a szöveget, de gondolom az egyértelmű.A példa szerint, ahol meghívtam a fv.-t, pl. <div id="szoveg"></div>, és akkor ebbe fogja belepakolni a kiírandó szöveget.
Egyébként végül órán hogy oldottátok meg?
Kíváncsi lennék rá, egyébként ezernyi megoldás van még, csak ez jutott eszembe elsőre, meg ez viszonylag rövid.
-
Sk8erPeter
nagyúr
válasz
Zoli1222 #1657 üzenetére
Én ilyen jellegű megoldásra gondoltam (remélem a nevekből minden érthető), ez végül is komplett megoldás:
HEAD részbe ez megy:
<script type="text/javascript">
<!--
function formazgatas(valami_szoveg, hova_id)
{
var formazott=valami_szoveg.replace(/\s/g,' ');
var kiiras_helye=document.getElementById(hova_id);
var kiirando='';
formazott=formazott.split(' ');
for(var i=0;i<formazott.length;i++)
{
if(i%2==0)
kiirando+='<b>'+formazott[i]+'</b> '; //félkövér szöveg
else
kiirando+='<i>'+formazott[i]+'</i> '; //dőlt szöveg
}
document.getElementById(hova_id).innerHTML=kiirando;
}
// -->
</script>Meghívni meg mondjuk egy BODY-ba tett gombbal lehet:
<input type="button" onclick="formazgatas('ez egy pár szavas szöveg lesz, amit formázva kiírok', 'szoveg');" value="Formázás" />
-
Sk8erPeter
nagyúr
válasz
Zoli1222 #1655 üzenetére
[link] >> nagyjából ezzel a módszerrel nézegeted végig a szavakat, hogy hol vannak szóközök, és még ehhez beteszed annak az ellenőrzését is, hogy mondjuk a for ciklusban használt i változó páratlan vagy páros-e, és annak megfelelően elécsapsz mondjuk egy <b>-t, mögé </b>-t, illetve <i>-t és </i>-t.
-
Sk8erPeter
nagyúr
Szívesen!
Mérd le valami képlopóval (pl. HyperSnap [van belőle próbaverzió] vagy valami ingyenes), vagy ilyen böngészőhöz való pluginnel/widgettel (mint pl. Operánál a Screen Ruler), hogy hány pixeles dobozka lenne számodra ideális, és azt add meg a CSS-fájlodban.
-
Sk8erPeter
nagyúr
Jahh, de most nézem a listádat, és a <li> elem után van egy <a> tag, aminek viszont egyáltalán nincs id-je, Te meg a paraméterlistában a this-szel az <a> elemet adod át, tehát a melyik.id (ami jelen esetben az <a id=""> lenne) soha nem lesz ugyanaz, mint a <li> id-je, mivel nincs is neki egyáltalán id-je.
Remélem érthető volt, bár kissé zagyván fogalmaztam.
Tehát az <a> elemnek is adj id-t (ne ugyanaz legyen, mint a <li> elemnek, mert az helytelen), és aszerint hivatkozz rá a függvényben.
Mindenképp sokat segítene, ha feltöltenéd valahova (valami ingyenes tárhelyre, pl. fw.hu, atw.hu, vagy tök mindegy), mert akkor nem kéne annyit visszakérdezni, hogy mit is szeretnél, meg egyből láthatnánk az esetleges hibát. -
Sk8erPeter
nagyúr
Tehát van CSS-sel hover tulajdonság is beállítva, hogy ha föléviszed az egeret, megváltozzon a színe a beállítottra, de azt szeretnéd, hogy menüpontra kattintáskor változzon meg a "kozepso" elem színe olyanra, amilyen a kattintott elemnek CSS-sel a hover-re van beállítva, és a kattintott elemnél meg is maradjon ugyanaz a háttérszín, mint amit CSS-sel hover-rel beállítottál? Csak hogy egész pontosan értsem, mit szeretnél.
-
Sk8erPeter
nagyúr
Mielőtt elkezdeném kegyetlenül bámulni a kódot, hogy kibogarásszam, mi a hiba, inkább Te írhatnád le, mi a hibajelenség, mi nem működik, mit nem csinál, ne nekünk kelljen már kitalálni.
Egyáltalán nem megy, nem vált színt? Amúgy van valami különleges célod azzal, hogy paraméterként is átadod a háttérszínt, meg még külön tömbben is tárolod? Mert ha a "kozepso" elemnek szeretnéd átadni ugyanazt a színt, mint amit kap az aktuális klikkelt elem, akkor tök felesleges paraméterként is átadni (vagy épp a tömb felesleges, ez a Te döntésed).
-
Sk8erPeter
nagyúr
Igen, lehet document.getElementById alapján is, egy for ciklussal, és akkor mondjuk egy tömbbe bepakolhatod az id-ket:
var tomb=new Array("ez", "az", "amaz");
for(var i=0;i<tomb.length;i++)
document.getElementById(tomb[i]).style.backgroundColor="red";Meg persze childNodes-zal is meg lehet oldani, de az valóban átláthatatlan lehet egy idő után, ahogy shev7 is írta.
-
Sk8erPeter
nagyúr
Hát eddig azt hittem, hogy azt mondod, hogy kikapcsolt JavaScripttel is megjelenik a lebegő nyelv...
Na de akkor már teljesen egyértelmű, hogy Te a CSS-formázásra gondolsz: ebben nincs semmi misztikum, ma már a legtöbb oldalon többek közt ezzel adják meg az oldal stílusát, kinézetét, a margókat, stb.
A CSS is fejlődés alatt van, az újabb verzióban még több formázási lehetőség lesz elérhető, mint a mostaniban: lekerekíthető sarkok, árnyékolás a "dobozoknak" trükközés nélkül, meg egyebek, amiknek valóban van gyakorlati haszna."ettől kezdve már csak az a kérdés, hogy eszerint a CSS is tud olyan ártalmas lenni, mint a javascript?"
Már miért lenne ártalmas?Ezt tényleg nem értem...
Mellesleg a CSS-formázás sokkal elegánsabb tud lenni, mint ugyanaz JavaScripttel, erre legjobb példa a menüknél, ha arra állítasz be stílust, hogy ha egy elem fölé viszed az egeret, akkor egy másik kép jelenjen meg annak háttereként (ha föléviszed az egeret, akkor mondjuk kap egy világosabb háttérszínt a menü adott gombja) - ez JavaScripttel megoldva (onmouseover, onmouseout) az Internet Explorernek még a 8-as változatában is egy kis átmeneti villanást eredményez, vagyis a képváltás viszonylag lassan történik meg, míg CSS-sel megoldva (elem:hover) nincs ilyen probléma (vagy jóval rövidebb a villanás, erre megoldás a következőkben leírt módszer), és a kód is szebb. Ráadásul az is megoldható, hogy a menüpont alap- és világosabb hátterét egy képfájlban egymás mellé/fölé/alá pakold, és amikor föléviszed az egeret, akkor csak arrébb told a megfelelő pozícióba a hátteret, úgy, hogy akkor már a világosabb háttér jelenjen meg - így meg garantáltan nem lesz minimális "villanás" (háttércsere-késés) sem, tapasztaltam.
A CSS nagyon előnyös tud lenni. -
Sk8erPeter
nagyúr
Most kikerestem neked, konkrétan mi felelős a menü megjelenítéséért:
Forráskód:
229. sor:
<li onmouseout="ddMenuHide();" onmouseover="ddMenuShow('2758','off','global','0.8');" class="tab offmenu" id="dd-menu_2758_lnk"><a href="/emea/2758.html" id="dd-menu_2758_anc"><span>• </span>Partners</a>
<ul id="dd-menu_2758" class="dd-menu">
Ebből a class="tab offmenu" és class="dd-menu" a lényeg: utána a CSS-fájlban ezekre vonatkozóan ez szerepel:
http://www.sonicwall.com/emea/styles_global.css655. sor (kommentbe tettem, ami a lényeg ez egészből):
.navbar .dd-menu,
.navbar .fo-menu {
display: none; /* EZ A LÉNYEG! */
position: absolute;
top: 2.26em;
left: 0.09em;
z-index: 51;
background: #eee;
border: .09em solid;
border-left-color: #eee;
border-top: none;
border-right-color: #707070;
border-bottom-color: #707070;
background: #c2c2c2;
}730. sortól:
.navbar .tab.offmenu:hover .dd-menu,
.navbar .tab.onmenu:hover .dd-menu {
display: block; /* EZ A LÉNYEG! */
}Alapból: display:none; (nem látható), egér fölévitelekor display:block; lesz (megjelenik).
Ennyi a trükk.----
A főoldalon pedig egyértelműen JavaScripttel oldják meg (tehát szerintem nálad a JavaScript kikapcsolásakor a NoScript valamilyen hibája miatt jeleníti meg, vagy valami egyéb hiba miatt):
Forráskód:
248. sor:
<h5><span id="lang_01" class="lang">English</span><a name="North America" href="/us/" onmouseover="showLang('01');" onmouseout="hideLang();" onClick="SetCookie('site', this.name, exp);"><span class="arrow">»</span> North America</a></h5>177. sor:
#countryselectlist .lang {
display: none;
width: 12em;
position: absolute;
top: 0.25em;
left: -13em;
text-align: right;
}
Emiatt tehát alapból display:none; van beállítva neki, vagyis nem jelenik meg.
Az onmouseover-re (fölé viszed az egeret) a JavaScript megváltoztatja display:block;-ra (megjelenik, látható), mert meghívja a showLang() függvényt, majd onmouseout-ra (elviszed róla az egeret) ismét display:none lesz a stílus a hidelang() függvény meghívása miatt:
214. sor:
<script language="javascript" type="text/javascript">
var SpanID = '';
function showLang(ID) {
SpanID = ID;
document.getElementById('lang_'+SpanID).style.display = "block";
}
function hideLang() {
document.getElementById('lang_'+SpanID).style.display = "none";
}
</script>Remélem sikerült tisztázni a kérdést, hogy mitől jelenik meg.
-
Sk8erPeter
nagyúr
Most látom ezt a hsz.-edet: [link]
Eddig a főoldalt mutogattad, hogy ott megjelennek a szövegek, de miért nem ezzel kezdted? Itt a menü megjelenítése CSS-sel van megoldva...
Máskor talán legyél egyértelműbb, és akkor hamarabb kapod meg a választ, és nem kell ötezerszer megkérdezni...
Senki nincs lemaradva, csak nem tudtad feltenni normálisan a kérdést. Eddig nem azt mondtad, hogy a http://www.sonicwall.com/emea oldalt kellene bambulni, azonbelül is a menüsor megjelenését, hanem a főlapot linkelgetted... -
Sk8erPeter
nagyúr
Én nem érzem magam "lemaradva"...
Hát nem tudom, Te hogy csinálod, mert most épp Ubuntu alól próbáltam ki, és ugyanúgy ha kikapcsolom a JavaScriptet, akkor onnantól már nem megy... Te figyelj, nem lehet egészen véletlenül, hogy a JS kikapcsolása után nem frissítesz?Mert amíg nem frissítesz, addig működni is fog továbbra is a menü a JS kikapcsolása után is...
Egyébként az ilyesmit már meg lehet oldani CSS-sel is, nem muszáj hozzá JavaScript. De az általad linkelt oldal esetében JS-t használnak. -
Sk8erPeter
nagyúr
Ha le lenne tiltva a JavaScript, NEM működnének a JS-es elemek. Az onmouseover, onmouseout JS-eseményeket hívnak meg, ez nem teljesülhet, ha le van tiltva a JavaScript.
Ha FF alatt tényleg letiltod, neked sem fog működni: Eszközök-Beállítások-Tartalom-JavaScript engedélyezése mellől pipa ki, majd OK. Máris nem fog működni.
Ezek szerint a NoScripted szarul van beállítva. -
Sk8erPeter
nagyúr
Egy kissé túlbonyolítottad.
A függvény:
<script language="javascript" type="text/javascript">
<!--
function szincsere(color,melyik){
melyik.style.backgroundColor=color;
}
// -->
</script>A lista:
<ul id="menu">
<li class="piros"><a onclick="szincsere('#FF0000',this);">PIROS</a></li>
<li class="narancs"><a onclick="szincsere('#FFA500',this);">NARANCS</a></li>
<li class="citrom"><a onclick="szincsere('#FFFF00',this);">CITROM</a></li>
<li class="zold"><a onclick="szincsere('#00FF00',this);">ZOLD</a></li>
<li class="kek"><a onclick="szincsere('#4876FF',this);">KEK</a></li>
<li class="lila"><a onclick="szincsere('#9400D3',this);">LILA</a></li>
</ul>Működik.
-
Sk8erPeter
nagyúr
-
Sk8erPeter
nagyúr
Azért írnak background-color-t, mert az konkrétan csak a színt módosítja CSS-ben, és az is helyes, csak backgroundColor formában elérhető (mindjárt bővebben). A sima background-dal több dolgot is lehet módosítani, lásd ezt: [link]. Pl. megadhatsz egy színt, és még mellé egy url-t, ahol az a kép található, amit a szín mellett még be akarsz pakolni háttérbe, ahogy a w3schools példája is írja:
body {background: #00ff00 url('smiley.gif') no-repeat fixed center;}A sima background-color is helyes, de remélem tudod, hogy JavaScriptben nem mindegy, hogy nagy- vagy kisbetűt írsz, és a JavaScript-es szintaktikának megfelelően adod-e meg, a background-color tulajdonságot így tudod megadni ([link] - JavaScript syntax):
object.style.backgroundColor="#00FF00"
Tehát nem kötőjellel, hanem egybe, és nagy C-vel adod meg (backgroundColor).
Ezekre figyelni kell, különben nem fog működni a kódod. Mindig nézd meg a helyes szintaktikát - például a w3schools-on (itt elég áttekinthető és könnyen megtalálható) -, mert a JavaScriptes stílusmódosítások szintaktikája sokszor nem egyezik meg a CSS szintaktikájával (de hasonló). -
Sk8erPeter
nagyúr
válasz
Zoli1222 #1587 üzenetére
Mármint úgy érted, hogy nem HTML-elemben szeretnéd megjeleníteni, tehát nem kéne lekérdezni a getElementById-vel az adott HTML-tag azonosítóját?
Akkor még rövidebb lesz, ha csak egy változóba szeretnéd eltárolni (persze a Te dolgod, hogy eldöntsd, ezzel mit szeretnél kezdeni):
az alábbit cseréld le:
document.getElementById('date').innerHTML="A mai dátum: "+year+"."+month+"."+day+". ("+day_name[day_number]+"), "+h+":"+m+":"+s;
erre:
var akarmi_valtozo;
akarmi_valtozo="A mai dátum: "+year+"."+month+"."+day+". ("+day_name[day_number]+"), "+h+":"+m+":"+s;
Ezzel eltároltál az akarmi_valtozo-ba egy összepakolt sztringet. -
Sk8erPeter
nagyúr
válasz
Zoli1222 #1583 üzenetére
Én ezt a következőképp oldanám meg. A w3schools oldalán található egy elég érthető példa egy óra működéséről: [link]
Ezt némiképp átalakítottam, és itt van két komplett függvény, ami mutatja az időt és a 2000 óta eltelt éveket is:function startTime()
{
var today=new Date();
var year=today.getFullYear(); //év
var month=today.getMonth()+1; //0-tól kezdődik, ezért hozzáadunk 1-et
var day=today.getDate(); //a hónap hányadik napja (1-31)
var day_number=today.getDay(); //hányadik nap a héten (0-6)
var day_name=new Array("vasárnap","hétfő","kedd","szerda","csütörtök","péntek","szombat"); //a 0. nap mindig a vasárnap! ld.: http://www.w3schools.com/jsref/jsref_getday.asp
var h=today.getHours(); //óra
var m=today.getMinutes(); //perc
var s=today.getSeconds(); //mp
// 10 alatti számok elé egy 0-t pakolunk
month=checkTime(month); //hó
day=checkTime(day); //nap
m=checkTime(m); //perc
s=checkTime(s); //mperc
//kiírjuk a 'date' id-del rendelkező elembe (id="date")
document.getElementById('date').innerHTML="A mai dátum: "+year+"."+month+"."+day+". ("+day_name[day_number]+"), "+h+":"+m+":"+s;
//2000.01.01 óta eltelt évek, hónapok, napok (id="time_2000")
document.getElementById('time_2000').innerHTML="A 2000 eleje óta eltelt évek, hónapok, napok: "+(year-2000)+" év, "+(month-1)+" hónap, "+(day-1)+" nap.";
t=setTimeout('startTime()',500); //önmagát meghívja
}
function checkTime(i){
return (i<10)?("0"+i):(i);
}A HTML-ben szerepeljen így:
<div id="date"></div>
<br />
<div id="time_2000"></div>És a <body> részt alakítsd át így: <body onload="startTime();">
Ha csakis a napot, és nem a teljes dátumot szeretnéd kiíratni, akkor így oldható meg a függvényen belül:
document.getElementById('date').innerHTML="Aktuális nap: "+day_name[day_number];Remélem érthető.
-
Sk8erPeter
nagyúr
Tehát magát az id-et szeretnéd átírni valami másra?
Mert akkor az igen egyszerű. Tedd be a következőt a dokumentumod <head> része után:
<script type="text/javascript">
<!--
function changeid(element)
{
alert(element.id); //előtte
element.id="valami"; //megváltoztatjuk az id-et "valami"-re
alert(element.id); //utána
}
// -->
</script>
Itt majd az alert sorokat természetesen szedd ki, ha élesben használod, csak azért raktam bele, hogy lásd, hogy ilyen volt előtte, ez lett utána. (Firebuggal könnyen tesztelhető, hogy valóban megtörtént a változtatás.)
Így használd pl.:
<input id="blabla" onclick="changeid(this);" type="button" value="Azonosítóváltás" />
Az onclick="changeid(this);" hatására meghívódik a changeid() függvény, és megtörténik az azonosítóváltás. Ide az onclick-hez bele lehetett volna tenni az egészet, de azért írtam meg külön a függvényt, mert úgy sokkal rugalmasabb, bármelyik elemre tudod használni. -
Sk8erPeter
nagyúr
válasz
Zoli1222 #1578 üzenetére
Igen, nem nehéz:
var i,szam=2,kitevo=10,hatvany=1;
for(i=0;i<=kitevo;i++){
document.write(i+". hatvány: "+hatvany%3+" | ");
hatvany*=szam;
}Csak a hatvany%3 a lényeg, de formáztam, nehogy kétségbe ess, hogy rossz eredményt kaptál.
De ugye tudod, hogy itt a 3-mal való osztás maradékai egészen logikusan 1-esek és 2-esek lesznek?A hatványozás résznek még van értelme, de ennek a 3-as maradéknak nem sok...
Gratulálok az új avatarhoz!
Még egy FG-os avatar.
-
Sk8erPeter
nagyúr
válasz
WonderCSabo #1576 üzenetére
És ki mondta, hogy nem?
Csak ha már homár...
-
Sk8erPeter
nagyúr
válasz
acidrush #1568 üzenetére
A tömböket esetleg összevonhatnád így:
banurl = new Array("images/kep1.jpg","images/kep2.jpg","images/kep3.jpg");
var url = "http://www.valami.hu/";
banimageUrl = new Array(url+"link1.php",url+"link2.php",url+"link3.php");
banAlt = new Array("szöveg1","szöveg2","szöveg3"); -
Sk8erPeter
nagyúr
válasz
Scorpion #1563 üzenetére
Java nem ugyanaz, mint a JavaScript! Nagyon nem.
Amit meg szeretnél oldani, annak túl sok köze nincs a JavaScripthez, inkább CSS.
Esetleg overflow (+még egy forrás, meg még egy).
Akár így is:<style type="text/css">
body{
overflow:scroll;
}
</style>(#1564):
a #background-nak először absolute, majd fixed positiont adsz meg. Miért is?
"csak a háttérképre nem tudok semmit se beírni, mert fogja magát és kitörli"
Mi töröl ki mit? -
Sk8erPeter
nagyúr
válasz
Sk8erPeter #1553 üzenetére
Opsz, most látom, bent maradt az én hsz.-emben egy fölösleges kapcsos zárójel.
A többi dologban Lortech-nek mind igaza van, submitOK=false és nem "false", meg ha úgysem "gyűjtöd egybe" a hibákat, és már az első hibánál vissza akarsz térni a függvényből false-szal, akkor a submitOK=false;-ok helyett lehetne egyből return false;, de mondjuk többek közt mivel kliens oldalon zajlik az ellenőrzés, ezért villámgyors, akkor már minden hibára egy kalap alatt felhívhatnád a figyelmet, nem egyesével. -
Sk8erPeter
nagyúr
válasz
ArchElf #1549 üzenetére
"Szerintem a hivatkozásokat PHP-vel generálják adatbázis ID alapján (valószínűleg a kódnak mint mondjuk memo elemnek ez a rekord id-ja)."
Akárhányszor frissítem az oldalt, mindig más random generált id lesz az eredmény. Akkor mi köze ennek az adatbázis ID-hez?Ezt nem értem.
Van egy olyan gyanúm egyébként, hogy ez a syntax highlighter nem az ő termékük, hanem valami ingyenes cucc, és akkor nem jogsértő használni, majd utánanézek.
-
Sk8erPeter
nagyúr
válasz
ArchElf #1546 üzenetére
Igen, én is ezt mondtam
Csak azt nem vágom, hogy ha a linken elérhető tartalmat megfelelő változók megadásával beágyazom saját oldalra, akkor az működőképes-e.
Pl. a flashvars részben az első kódrészletnél most nálam ez van (ez itt dinamikusan változik):
flashvars="highlighterId=highlighter_514695"
És a div id-je a következő:
highlighter_514695
Szóval elvileg stimmel a kettő, így rendelik hozzá, de vajon ez saját oldalra beágyazva működik? Az id dinamikus változtatását már JavaScripttel oldják meg?
Még egy kérdés merült fel bennem: ha alapból tiltják biztonsági okokból a clipboardhoz való hozzáférést, akkor ez mégis hogyan tudott hozzáférni? -
Sk8erPeter
nagyúr
válasz
Sk8erPeter #1537 üzenetére
Itt ha a kiszínezett forráskód fölé mentek, akkor előjön egy ilyen kis Flash-es cucc, az egyik opció, hogy "copy to clipboard", ez tökéletesen meg is csinálja a dolgát az összes böngészőben, amivel próbáltam, csak tudnám, hogyan csinálja.
Nem tudjátok? Lehet, hogy OFF (ha Flash), de érdekelne. -
Sk8erPeter
nagyúr
Hali!
Hogy kell vágólapra másolni JavaScripttel?
Nekem ez nem csinál semmit se Opera, se FF, se Chrome alatt: [link]. Egyedül IE8 alatt kérdez rá, engedélyezem-e a hozzáférést a vágólaphoz, ott sikeresen másol is. De azért ez így elég szegényes
Ennél ugyanez a helyzet.Vagy marad az, hogy másolja ki a júzer maga?
Nincs általános megoldás?Köszi a válaszokat!
-
Sk8erPeter
nagyúr
válasz
Windsurfer #1535 üzenetére
Apropó, boldog karácsonyt mindenkinek!
-
Sk8erPeter
nagyúr
válasz
Windsurfer #1532 üzenetére
Próbáld meg ehelyett a sor helyett:
document.write('<a href=\"' +ranlink+ '\" target=\"_blank\"><img src=\"'+ranimage+'\" border="0" alt=\"'+rantext+'\"></a>');EZT
document.write('<a href=\"' +ranlink+ '\" target=\"_blank\"><img src=\"'+ranimage+'\" border="0" alt=\"'+rantext+'\"></a><br />Képaláírás: '+rantext+'<br />');Amúgy a linkelt oldalon valószínűleg inkább PHP+MySQL-lel dolgoznak.
-
Sk8erPeter
nagyúr
válasz
Windsurfer #1530 üzenetére
És végül hogyan "egyszerűsítetted le"?
Ha mutatnál kódrészletet, akkor könnyebb lenne megmondani, mit kéne még berakni... -
Sk8erPeter
nagyúr
válasz
Windsurfer #1528 üzenetére
Most látom, hogy nincs lezárva pontosvesszőkkel...
<script>
<!--
//specify FULL path to midi
var musicsrc="images/angel.mp3";
if (navigator.appName=="Microsoft Internet Explorer")
document.write('<bgsound src="'+musicsrc+'" loop="once">');
else
document.write('<embed src="'+musicsrc+'" hidden="true" border="0" width="20" height="20" autostart="true" loop="false">');
//-->
</script>Így a kód szintaktikája elvileg jó, de igazán nem is értem, mit akarsz beágyazni az "embed" résszel. Kéne legalább valami flash-lejátszó, vagy valami, én nem tudok róla, hogy ez így önmagában működne... Mit állítasz autostart-ra, meg loop-ra?
-
Sk8erPeter
nagyúr
válasz
Windsurfer #1525 üzenetére
Hali!
Lehet, hogy az a gáz, hogy az else ágban van egy hiba:
src=\"'+musicsrc+'\"
HELYETT próbáld meg ezt:
src="'+musicsrc+'"Az a perjel oda felesleges. (Szerk.: legfeljebb akkor kéne, ha eleve "macskakörömmel" kezdted volna a sort, és nem sima aposztrófba (') tetted volna az egészet)
Mondjuk szerintem a következő sornál:
document.write('<bgsound src='+'"'+musicsrc+'"'+' loop="once">')
elég lenne ez is:
document.write('<bgsound src="'+musicsrc+'" loop="once">')Nem kell az a sok plusz oda...
Remélem így jó lesz, bár nem garantálom.
-
Sk8erPeter
nagyúr
válasz
Windsurfer #1521 üzenetére
-
Sk8erPeter
nagyúr
válasz
Windsurfer #1519 üzenetére
Ha már vízjelezel, akkor minek a jogi szöveg?
-
Sk8erPeter
nagyúr
válasz
Windsurfer #1517 üzenetére
Hali!
Így kell csinálni a jobbklikkes menü letiltását:
http://www.dynamicdrive.com/dynamicindex9/noright.htm
A forráskódban beteszed a <body> részbe ezt:<script language=JavaScript>
<!--
// FORRÁS: http://www.dynamicdrive.com/dynamicindex9/noright.htm
//Disable right mouse click Script
//By Maximus (maximus@nsimail.com) w/ mods by DynamicDrive
//For full source code, visit http://www.dynamicdrive.com
var message="Function Disabled!";
///////////////////////////////////
function clickIE4(){
if (event.button==2){
alert(message);
return false;
}
}
function clickNS4(e){
if (document.layers||document.getElementById&&!document.all){
if (e.which==2||e.which==3){
alert(message);
return false;
}
}
}
if (document.layers){
document.captureEvents(Event.MOUSEDOWN);
document.onmousedown=clickNS4;
}
else if (document.all&&!document.getElementById){
document.onmousedown=clickIE4;
}
document.oncontextmenu=new Function("alert(message);return false");
// -->
</script>A "message" változó tartalmát átírhatod arra, amit szeretnél kiíratni, ha jobb klikkel kattintanak az oldalon. (Persze meg lehet csinálni azt is, hogy ne dobáljon fel ablakokat, ami figyelmeztet, hogy le van tiltva a dolog.)
Érdemes viszont megfontolni, hogy miért NEM érdemes kikapcsolni a jobbklikkes menüt:
Don't Disable Right Click!A lényeg belőle:
■ idegesítő (az ember sokszor használja a jobbklikkes menüjét, és mérges lesz, ha ettől a lehetőségétől egy oldal fenntartója meg akarja fosztani)
■ a dokumentum és képek védelme szempontjából értelmetlen, aki akarja, úgyis megszerzi, sőt - a cikk írója szerint - adott esetben pont azt válthatja ki, hogy már csak azért is megszerzik a kódodat/képeidet (ellenkező hatás, mint amit el akartál érni)
■ a JavaScriptet bárki bármikor kikapcsolhatja a böngészőjében
■ sok böngészőben lehet ún. egérmozdulatokat jobb egérgomb segítségével végrehajtani, ha ennek lehetőségét ezzel megszünteted, akkor nem biztos, hogy túl "népszerű" leszel a felhasználóid szemében
■ sokan jobb klikkes menüből akarnak megnyitni új ablakot az új linkekhez, hogy ne kelljen a "Vissza" gombra menni az eredeti oldalra való visszatéréshez, ennek letiltásával ismét csak zavarsz néhány felhasználót
■ sértő lehet, ha eleve rossz szándékot feltételezel a látogatókról (pl. képek vagy forráskód lenyúlása, amit így is meg tud tenni). A látogatók nagy többsége nem azért nézi meg az oldaladat, hogy onnan valamit ellopjon, lenyúljon. Ezenkívül vannak, akik csak kíváncsiak bizonyos kódrészekre, nem feltétlenül fogják saját oldalra bemásolni is azt. (ez ismét csak akkor érdekes, ha jobb klikkel szeretnének belemenni a forráskódnézőkébe)
■ más, kevesebb hátránnyal járó módszerek is léteznek a dokumentumod védelmére (ezek olvashatók a 2. oldalon)
_______________________________________________________________Ugyanez az oldal ajánlja azt a linket is, amin csak a képekre való jobbklikkelést letiltása olvasható: http://javascript.internet.com/page-details/disable-images-click.html
a <head> részbe ezt másold:
<SCRIPT LANGUAGE="JavaScript">
<!-- This script and many more are available free online at -->
<!-- The JavaScript Source!! http://javascript.internet.com -->
<!-- Begin
function right(e) {
var msg = "Sorry, you don't have permission to right-click.";
if (navigator.appName == 'Netscape' && e.which == 3) {
alert(msg);
return false;
}
if (navigator.appName == 'Microsoft Internet Explorer' && event.button==2) {
alert(msg);
return false;
}
else return true;
}
function trap()
{
if(document.images)
{
for(i=0;i<document.images.length;i++)
{
document.images[i].onmousedown = right;
document.images[i].onmouseup = right;
}
}
}
// End -->
</SCRIPT>Ahol a <body> van, azt a sort meg cseréld ki így:
<body onLoad="trap();">Remélem segítettem.
Új hozzászólás Aktív témák
Hirdetés
- Argos: Szeretem az ecetfát
- Linux kezdőknek
- Könyvajánló
- Bambu Lab 3D nyomtatók
- Apple iPhone 16 Pro - rutinvizsga
- TCL LCD és LED TV-k
- RAM topik
- Intel Core i3 / i5 / i7 / i9 10xxx "Comet Lake" és i3 / i5 / i7 / i9 11xxx "Rocket Lake" (LGA1200)
- sziku69: Fűzzük össze a szavakat :)
- Vicces képek
- További aktív témák...
- DDR5 GAMER PC: Új RYZEN 7 8700F +RTX 4060/5060/4070/5070 +16-32GB DDR5! GAR/SZÁMLA! 50 FÉLE HÁZ!
- Dell Latitude 7410 Strapabíró Ütésálló Profi Ultrabook 14" -80% i7-10610U 16/512 FHD
- Szép! HP EliteBook 850 G8 Fémházas Multimédiás Laptop 15,6" -65% i7-1185G7 32/512 Iris Xe FHD Magyar
- HP EliteBook 850 G8 Fémházas Multimédiás Laptop 15,6" -65% i7-1185G7 8/512 Iris Xe FHD Magyar
- 512 Gb-os NVME-k
- Lenovo ThinkPad L16 Gen 1 - 16" WUXGA IPS - Ultra 5 135U - 16GB - 512GB - Win11 - 2,5 év gari
- ÁRGARANCIA!Épített KomPhone Ryzen 7 5800X 32/64GB RAM RX 7700 XT 12GB GAMER PC termékbeszámítással
- ÁRGARANCIA!Épített KomPhone Ryzen 7 5800X 32/64GB RAM RX 7800 XT 16GB GAMER PC termékbeszámítással
- Azonnali kézbesítés az év bármely pillanatában
- ÁRGARANCIA!Épített KomPhone Ryzen 5 5600X 16/32/64GB RAM RX 7600 8GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged