Ezt hogyan lehet megcsinálni javascriptben?
JavaScript topic - Szoftverfejlesztés fórum
hozzászólások
lesaux
(veterán)
Akkor szerintem ne is küldd, rögtön kopizd ide.
KovacsUr
(addikt)
Várj, lesaux, mielőtt nagyon nekikezdek... milyen szervert használsz? ASP, PHP, ilyesmi nincs? Úgy picit egyszerűbb lenne
lesaux
(veterán)
Meg különben se a szerver dolgozzon, hanem a kliensgép.
Sunzi
(aktív tag)
Az nem JSP volt véletlenül?
Nekem elég macerásnak tűnik js-el ezt megcsinálni, bár biztos nem lehetetlen.. meg js-ben nem vagyok profi, de a megoldásra kíváncsi lennék
lesaux
(veterán)
Szerintem nem, mert a forrásban láttam a trükköt.
Lehet, hogy írok a Startlapnak, adják meg a receptet.
KovacsUr
(addikt)
na jó, ennyire tellett:
<html>
<head>
<title>linkhegyek</title>
<script>
function bodyLoad() {
var ujHTML = ebbolleszalap.innerHTML;
var re = /\x24A\(([^,]*),([^\)]*)\)/g;
ujHTML = ujHTML.replace(re,"<a href=\"http://www.$1\">$2</a>");
document.body.innerHTML = ujHTML
}
</script>
<head>
<body onload="bodyLoad()">
<div id="ebbolleszalap" style="display: none">
<h1>linkhegyek</h1>
<p>
$A(index.hu,Index)<br />
$A(startlap.hu,Startlapp)
</p>
</div>
</body>
</html>
KovacsUr
(addikt)
A divbe megy minden, amit a lapon látni akarsz. Ebben használhatod a linkes mókát: $A(link, link szövege)
Persze a scriptet ki lehet tenni külső fájlba is, ha minden lapon használnád, stb, stb. A lehetőségeid határtalanok
KovacsUr
(addikt)
Még valami: ez nem fog működni semmiben, ami nem IE ÉS nem 5.5 vagy magasabb verziószámú... Ha jól tudom. Ha mégis műxik, az csak jó.
KovacsUr
(addikt)
Még valami #2: A link szövegében ne használj , (vessző) karaktert, vagy módosítsd a regexpet is. Vagy szólj valaki hozzáértőnek, hogy módosítsa.
lesaux
(veterán)
Visszajöttem.
Az csak a kisebbik baj, hogy nem ez volt a Startlapon, a nagyobb az, hogy nem értem a lényegét.
De nagyon köszönöm a fáradozásodat.
(Szerintem írok egyet a Startlapnak.)
KovacsUr
(addikt)
Mit nem értesz ezen? Nem értened kell, csak használnod Nem tudom, mi volt a Startlapon, de az tuti, hogy az enyém jobb (Szerénység rulz) No sebaj, legalább szórakoztam egy kicsit regexpekkel JScriptben, ilyet is régen csináltam
lesaux
(veterán)
/\x24A\(([^,]*),([^\)]*)\)/g;
Hát pl. ez a rész egy csöppet homályos. Egy megveszekedett karakter nem sok, annyit nem értek belőle.
No de majd írok a Startlapnak.
KovacsUr
(addikt)
Az a regular expression, de neked nem kell törődnöd vele. Mágia. Azért kicsit megpróbálom magyarázni, hátha valakit érdekel
Ez a kifejezés olyan karaktersoroknak felel meg, amik:
$A(-lel kezdődnek, jön utánuk valami, aztán egy vessző, aztán még valami, majd egy bezáró zárójel. Az első ''valamit'' fogja betenni a kód a href-be (a script következő sorában $1-gyel hivatkozunk rá), a második ''valami'' lesz a link szövege (ez a $2).
Polesz
(addikt)
OFF
Az ilyen regexp-ek miatt szeretem annyira a Perl-t
ON
lesaux
(veterán)
Ezt sikerült összehoznom. Sokra nem megyek vele, meg nem is így nézett ki az eredeti, de ebből már ki lehet indulni.
var lnk=''href=http://www.'';
document.write('<A ',lnk,'index.hu>Index</A>');
document.write('<A ',lnk,'mno.hu>MNO</A>');
document.write('<A ',lnk,'mnb.hu>MNB</A>');
Esetleg ha az lnk változóba ha be tudnánk gyömöszölni az A taget, merthogy attól kiakad az egész oldal.
KovacsUr
(addikt)
Jah igen... Ha válaszol a Startlap, légy szíves, küldj majd nekem is egy másolatot, érdekel, hogy mit hoztak össze
KovacsUr
(addikt)
[off]De egyszerre jutott eszünkbe ez a topic![/off]
Ez így nagyon amatőr... Ezzel még helyet sem nagyon nyersz, akkor meg minek? Be lehet tenni az '<A'-t is nyugodtan, nekem nem akad ki tőle:
<script>
var lnk="<A href=\"http://www.";
document.write(lnk,'index.hu">Index</A>');
document.write(lnk,'mno.hu">MNO</A>');
document.write(lnk,'mnb.hu">MNB</A>');
</script>