-
PROHARDVER!
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
Siriusb #2106 üzenetére
Hali!
Bocs, csak gyorsan tudok válaszolni, a többire érdemben csak holnap fogok tudni, de a lényeg, hogy a window.location egy objektum, így annak legfeljebb a tulajdonságait tudod vizsgálgatni, hogy létezik-e.
Példa:
window.location.hasOwnProperty('blabla');
false-szal tér vissza, mert nincs "blabla" nevű property-jewindow.location.hasOwnProperty('href');
true-val tér vissza, mert létezik a "href" property, ami a window.location.href-fel érhető el.Érdemes inkább ilyen vizsgálgatásokat végezni, ha viszont arra vagy kíváncsi, hogy mondjuk az adott cím tartalmaz-e valamilyen karaktersorozatot, akkor meg a megfelelő tulajdonságot kell felhasználnod, példa:
window.location.href.indexOf('eztkeresedateljescimben');
Ha csak a hostname-ben szeretnél keresni (pl. www.google.hu), akkor a hostname tulajdonságot kell felhasználnod:
window.location.hostname.indexOf('google');Ha mégis ragaszkodnál ahhoz, hogy a window.location-ön végezz indexOf-ot, akkor ez működik:
window.location.toString().indexOf('eztkeresedateljescimben');Ja, és persze mindegyiknél úgy kell vizsgálódnod, ha csak az érdekel, hogy benne van-e a keresettt string, hogy az indexOf nagyobb értéket ad-e vissza, mint -1, mert ha igen, akkor megtaláltad, ha nem, akkor nincs meg a keresett string.
-
Siriusb
veterán
válasz
Siriusb #2101 üzenetére
Megoldottam. A nyomtatási linkben a href-nek a végére betoldottam egy "-nyomtathato" karakterláncot, amit az oldal betöltésekor php-ben vizsgálok, jelen van-e. Ha igen, a head részben létrehozok egy JS változót is neki igaz értékkel és a script-ben szépen elvégezem a teendőket. Tökéletesen működik.
Lenne még egy olyan kérdésem, hogy JS-ben nem tudok végrehajtani indexOf()-t a document.location-ön. Mi ennek az oka?
-
Arki
tag
válasz
Siriusb #2103 üzenetére
http://www.ajaxblender.com/howto-convert-image-to-grayscale-using-javascript.html, de ahogy neked kényelmes.
-
Arki
tag
válasz
Siriusb #2101 üzenetére
Nm., de pl. ez?
function vmi()
{
var acss="masstilus.css";
var hablak=window.open('','Oldal','toolbar=no,location=no,status=no,menubar=no,scollbars=no,resizeable=no,dependent=yes,width=400,height=200');
hablak.document.write("<!--//valamik//-->");
hablak.document.write("<link rel=stylesheet href="+acss+" type=text/css>");
hablak.document.write("<!--//valamik//-->");
}De ha csak nyomtatáshoz akarsz más css-t, akkor:
<LINK REL="STYLESHEET" HREF="alap.css" TYPE="TEXT/CSS" MEDIA="ALL">
<LINK REL="STYLESHEET" HREF="nyomtatashoz.css" TYPE="TEXT/CSS" MEDIA="PRINT">
Ez nem elég hozzá? -
Arki
tag
válasz
Siriusb #2096 üzenetére
JS pl?
<link rel="stylesheet" href="html.css" type="text/css">
<link rel="stylesheet" href="html2.css" type="text/css" DISABLED>
<link rel="stylesheet" href="html3.css" type="text/css" DISABLED>
<script language="JavaScript" type="text/JavaScript">
/* váltás HTML stílusok között */
function stilus(ez)
{
csslink=document.getElementsByTagName("link");
csslink[ez].disabled=false;
if (ez==0)
{
csslink[1].disabled=true;
csslink[2].disabled=true;
}
else if (ez==1)
{
csslink[0].disabled=true;
csslink[2].disabled=true;
}
else if(ez==2)
{
csslink[0].disabled=true;
csslink[1].disabled=true;
}
}
</script>
...
Body-ban:Válasszon egy designt:
<select id="htmlstiluslink" onChange="stilus(form.htmlstiluslink.options[form.htmlstiluslink.selectedIndex].value);" title="Válasszon ki egy design stílust a HTML felületéhez.">
<option value="0">Kék (alap)</option>
<option value="1">Piros</option>
<option value="2">Zöld</option>
</select>
Az első, nem tiltott fáj,l kék színeket tartalmaz. Oldalon belül oldottam meg így a váltást, remélem ez is segít. -
jeges
senior tag
válasz
Siriusb #2063 üzenetére
kulcsszavak vs px:
annyaira azér' nem egyszerű a kérdés... ie-ben nincs computedStyle, ami "átváltaná" a szavakat (small, large, stb) pixel értékekre. jquery bicskája is ugyanebbe törik bele, mivel a kulcsszavak függnek az aktuális felbontástól, plusz ie-ben (elsősorban régi ie-kben) vannak beállítások, amiktől nem lehet belőlük számolni. sajna ha css-ben adsz fix értéket, akkor meg bizonyos körülmények között nem lehet módosítani rajta ie6-ban, így marad a "szokásos" osztály-módosítós játék (ha elegendő 3-4 nagyság), vagy inline cssText (ez utóbbira mutattam én példát fentebb), vagy em, ill %.
pl itt lehet róla olvasni, ha mélyebben érdekel -
Sk8erPeter
nagyúr
válasz
Siriusb #2060 üzenetére
"Mivel a css-ben is medium-ra van állítva."
Erről beszélek, hogy ezt változtasd meg...Vannak előre megírt jQuery-pluginek ilyen célra: [link]
Ki lehet próbálgatni őket (Try out a demonstration).==========
(#2059) jeges: ennek mi köze az egész konkrét betűméret-állításhoz?
Ez csak általános stílusbeállítgatás és -eltávolítás.
Ráadásul konkrét használati példát sem adtál rá, hogy jelen esetben hogyan lehetne hasznát venni. (Nyilván én tudom, de nem értem, miért is lenne az jobb, mint amit Siriusb eddig összehozott... Ennek a pontos feladathoz nem sok köze van.) -
jeges
senior tag
válasz
Siriusb #2057 üzenetére
én ezeket használom most:
function getStyle(oElm, strCssRule){
try{
var strValue = "";
if(document.defaultView && document.defaultView.getComputedStyle){
strValue = document.defaultView.getComputedStyle(oElm, "").getPropertyValue(strCssRule);
}
else if(oElm.currentStyle){
strCssRule = strCssRule.replace(/\-(\w)/g, function (strMatch, p1){
return p1.toUpperCase();
});
strValue = oElm.currentStyle[strCssRule];
}
var num = strValue.replace(/[\sa-z]+/gi, '');
var str = strValue.replace(/[\d\.]+/i, '');
return [parseFloat(num), str];
}catch(er){return [0,"px"];}
}
function setStyle(obj,st,vl){
var a = obj.style.cssText;
obj.style.cssText = (a.length>0) ? a + ";" + st + ":" + vl : st + ":" + vl ;
}
function removeStyle(obj,st){
str = new RegExp("(?:\\b|^)" + st + "\\s?:[^;]*(?:$|;)", "i");
obj.style.cssText = obj.style.cssText.replace(str, "");
}ie6+, ff, opera, chrome megette eddig.
-
Sk8erPeter
nagyúr
válasz
Siriusb #2057 üzenetére
És ha a CSS-fájlodban explicite megadod, hogy a #tartalomnál mekkora legyen a betűméret px-ben, akkor is medium-ot ad vissza?
Csak nem már.
Amúgy ennél a résznél:
default:
$("#tartalom").css("font-size","medium");
break;nem is értem, minek "medium"-ot adsz meg, így nehéz ebből int értéket kiszámolni.
Ezt is változtasd meg az általad közepesnek tekintett betűméretre. Gondolom ez nagyjából a 17px-es érték lehet nálad, ha a 24 a max, 10 a min, nem?
Bár lehet, hogy ez nagy lesz alapból kicsit. -
Sk8erPeter
nagyúr
válasz
Siriusb #2054 üzenetére
Úgy is próbáltad, hogy az e.preventDefault();-ot a fontSize() függvényhívás utánra teszed? Mellesleg ha sima <li> listaelemekbe pakoltad be, akkor mi szükség van a preventDefault()-ra?
Vagy <a> tagekbe raktad? Ha utóbbi, akkor miért nem az a-ra (és miért a li-re) vonatkoztatva kezeled a click eseményt?
A hozzá tartozó HTML-kódot sem ártana látni.
Esetleg fel tudod rakni egy ingyenes tárhelyre a lényeget? Úgy könnyebb lenne kipróbálni és debuggolni.
Egyébként simán lehet, hogy az each-re nincs is szükség. -
maestro87
őstag
-
Sk8erPeter
nagyúr
válasz
Siriusb #1962 üzenetére
Továbbra is áll, amit írtam korábban, tehát nem törölhető JS-ből a cache, de mégis találtam módszert arra, hogy figyelmen kívül hagyja a korábban cache-elt elemeket, és új példányokat szedjen le a szerverről, itt: [link]
"You can call window.location.reload(true) to reload the current page. It will ignore any cached items and retrieve new copies of the page, css, images, JavaScript, etc from the server. This doesn't clear the whole cache, but has the affect of clearing the cache for the page you are on."Tehát:
window.location.reload(true);
Ezek szerint a true boolean azt adja meg, hogy újratöltse a szerverről az oldalt, és NE a böngésző cache-éből szedje le az adatokat, és ez szerintem már részben válasz is a kérdésre.DE ha tényleg azt szeretnéd, hogy sose cache-eljen a böngésző, ha az adott oldalra navigál a felhasználó, akkor azt már nem JavaScriptből kell elintézni!
Majd írd le, konkrétan mi a célod, és akkor tovább gondolkodunk a megoldáson!
-
Sk8erPeter
nagyúr
válasz
Siriusb #1962 üzenetére
Hát az elég érdekes lenne biztonsági szempontból, ha JavaScripttel törölni lehetne a cache-t.
Szóval ilyenre nincs mód JavaScriptből.
Legfeljebb arra van, hogy megoldd, hogy pl. a JS-fájlokat frissítésnél újból betöltse, illetve arra, hogy egyáltalán ne cache-elje az oldaladat a böngésző, de ez sem olyan nagyon szerencsés, pont azért cache-el a böngésző, hogy első oldalbetöltés után lehetőleg gyorsabb legyen a böngészés. -
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
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...
Új hozzászólás Aktív témák
Hirdetés
- BESZÁMÍTÁS! Gigabyte GA-A620M R5 7600 32GB DDR5 512GB SSD RX 6700XT 12GB Rampage SHIVA Corsair 750W
- BESZÁMÍTÁS! Asus A520 R5 3600 16GB DDR4 500GB SSD RTX 2060 8GB Rampage SHIVA CoolerMaster 700W
- BESZÁMÍTÁS! MSI B550 7 5800X 16GB DDR4 512GB SSD RTX 3070 8GB Rampage SHIVA Enermax 750W
- BESZÁMÍTÁS! MSI B450M R7 2700X 32GB DDR4 512GB SSD RTX 3050 8GB Rampage SHIVA Thermaltake 500W
- BESZÁMÍTÁS! ASRock B460M i5 10400 16GB DDR4 512GB SSD RTX 2060 Super 8GB Rampage SHIVA TT 500W
- Csere-Beszámítás! RTX Gamer Számítógép PC Játékra! I5 12400F / RTX 3070 / 32GB DDR4 / 1TB SSD
- Samsung Galaxy A12 64GB, Kártyafüggetlen, 1 Év Garanciával
- Bomba ár! Lenovo IdeaPad 330S-15IKB - i5-8G I 8GB I 256SSD I 15,6" FHD I HDMI I Cam I W11 I Gari!
- Telefon felvásárlás! Samsung Galaxy A15, Samsung Galaxy A25, Samsung Galaxy A35, Samsung Galaxy A55
- Álmodozol egy erősebb gamer élményről? Kamatmentes rèszletre is!
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: Promenade Publishing House Kft.
Város: Budapest