Autor | Zpráva | ||
---|---|---|---|
pavelrejha Profil |
#1 · Zasláno: 25. 1. 2019, 18:12:07
Zdravím,
potřeboval bych poradit, jak udělat JS, který by dokázal opsat název souboru z url adresy bez přípony a pak ho vypsat, tedy pokud to lze? Nalezl jsem pěkný článek s podobným js zde: Přečtení proměnných z adresy javascriptem Ale bohužel se mi nedaří ho poupravit do mého záměru, může mi prosím někdo pomoci? Děkuji. |
||
Keeehi Profil |
#2 · Zasláno: 25. 1. 2019, 18:14:25
Můžeme, ovšem nevíme s čím konkrétně máš problém.
|
||
pavelrejha Profil |
#3 · Zasláno: 25. 1. 2019, 18:25:53
Když vezmu výše zmíněný JS ze článku, tak ten opisuje to co je po otazníku, ale já nevím jak donutit ho opsat název souboru...
|
||
juriad_ Profil * |
#4 · Zasláno: 25. 1. 2019, 18:50:07
https://stackoverflow.com/a/40725409
Potřebuješ pracovat s pathname, to rozdělit podle lomítek a vzít poslední. |
||
Keeehi Profil |
#5 · Zasláno: 25. 1. 2019, 19:24:35
Součásti objektu location máš popsané na Objekt window » Objekt window.location což je stránka na kterou ae můžeš dostat i tím odrazem v ukázce.
|
||
pavelrejha Profil |
Zatím se mi to vůbec nedaří... Aspoň, že vím že to udělat půjde :-)
Nějak jsem se zasekl nad tímto, lomítko které je v závorce mám přidat do řádku ve kterém už závorka je, jak? .pathname.split("/") .pathname.split("/") |
||
pavelrejha Profil |
#7 · Zasláno: 27. 1. 2019, 20:07:09
Nevím jestli je to takto ok, nebo je tam něco na víc, ale nějak jsem nikde nenašel jak odstranit příponu, je k tomu nějaká zkratka? Číselně mi to nedává moc smysl, když nevím kolik znaku přípona bude mít....
|
||
Keeehi Profil |
#8 · Zasláno: 27. 1. 2019, 20:39:10
„když nevím kolik znaku přípona bude mít“
To ano, ale přece si můžeš zjistit, kde se nachází ta tečka a z toho si dopočítat potřebný počet znaků. var url = window.location.pathname.replace(/\/+$/, ""); var url = window.location.pathname.replace(/\/+$/, "");
document.write(url.substr(url.lastIndexOf('/') + 1, url.lastIndexOf('.') - 1)); |
||
pavelrejha Profil |
Super, děkuji! Lze tento script použít třeba k tomuto účelu:
Js dám do externího souboru test.js <img src="<script type="text/javascript" src="test.js"></script>.jpg"> Omlouvám se, že je to takto prasecky napsáno, ale vůbec netuším jak se toto dělá... |
||
Keeehi Profil |
#10 · Zasláno: 27. 1. 2019, 22:41:46
pavelrejha:
Myslím že nejde. Jde ale to udělat obráceně. Ten HTML kód přidat do JS. var url = window.location.pathname.replace(/\/+$/, ""); var url = window.location.pathname.replace(/\/+$/, "");
document.write('<img src="' + url.substr(url.lastIndexOf('/') + 1, url.lastIndexOf('.') - 1) + '.jpg">'); Ale máš celkem pravdu, vypadá to, že to je prasárna. Nejspíše bude existovat elegantnější řešení, ovšem když nevíme o co ti jde, těžko ti můžeme poradit co bude vhodné. Zatím mi má věštecká koule říká, že se snažíš o dynamické sestavování stránky. Na což by se asi víc hodil nějaký servrový jazyk (třeba PHP) než javascript. |
||
pavelrejha Profil |
#11 · Zasláno: 27. 1. 2019, 23:09:13
Toto je přesně co potřebuji, jen dotaz lze tam zakomponovat i párové HTML?
<a href="">#</a>, <script type="text/javascript"></script> ???
Úplně mi není jasné, jak obejít ty lomítka co mají párové HTML. Ano, pokouším se udělat stránky vše za pomocí JS, poradím si jen s HTML... Chápu že PHP by bylo efektivnější, ale to by v mém podání byl ještě větší průser než-li JS... |
||
Keeehi Profil |
#12 · Zasláno: 28. 1. 2019, 01:06:15
„Úplně mi není jasné, jak obejít ty lomítka co mají párové HTML.“
Lomítka v řetězci vůbec ničemu nevadí. document.write('<a href="' + url.substr(url.lastIndexOf('/') + 1, url.lastIndexOf('.') - 1) + '.html">Odkaz</a>'); document.write('<a href="' + url.substr(url.lastIndexOf('/') + 1, url.lastIndexOf('.') - 1) + '.html">Odkaz</a>'); Zvýrazňovač kódu to tady na stránce ne úplně moc zvládá, takže se může zdát, že tam je chyba ale je to v pořádku. „Chápu že PHP by bylo efektivnější, ale to by v mém podání byl ještě větší průser než-li JS.“ Tak jestli si máš vybrat, jestli se učit PHP nebo JS tak by bylo záhodno nejspíše zvolit právě PHP. S javascriptem budeš mít nejspíše problém, že tvé stránky nebudou vyhledatelné vyhledávači. Jediný, kdo alespoň trochu slušně pracuje s javascriptem je google. Ostatní vyheldavače s javascriptem zatím jen experimentují, nebo ho ignorují. Věci které vytvoříš javascriptem (obrázky, texty, odkazy, ...) budou pro taková vyhledavače neviditelné. Jelikož výstupem z PHP je obyčejný textový html kód, vyhledavače nemají problém takovou stránku zaindexovat. |
||
pavelrejha Profil |
Omlouvám se,
<a href="">#</a> funguje, já to testoval s <script type="text/javascript" src=""></script> ten to nepobere, tak jsem myslel že mám problém s těmi lomítky, ale jak je vidět script ve scriptu nefunguje. Vypíše to jen '); Ale ještě zkouším...
Ano, máš pravdu, PHP je lepší, to ohledně vyhledávačů jsem nevěděl. |
||
pavelrejha Profil |
#14 · Zasláno: 28. 1. 2019, 23:13:03
Tak jediné co tam nefunguje je:
<script type="text/javascript" src=""></script> , jen se mi nepodařilo zjistit proč.
|
||
Keeehi Profil |
#15 · Zasláno: 28. 1. 2019, 23:37:20
pavelrejha:
Tak to asi proto, že tam bude nějaká chyba. Přidávat dynamicky script scriptem samozřejmě možné je. Dělá se to typicky ale trochu jinak než přes write. 1var firstScript = document.scripts[0]; var firstScript = document.scripts[0];
var script = document.createElement('script');
script.src = 'url adresa';
firstScript.parentNode.insertBefore(script, firstScript); |
||
Časová prodleva: 3 dny
|
|||
pavelrejha Profil |
Nechtěl jsem otravovat hned, proto jsem to testoval, ale nějak se mi ty dva scripty nepodařilo dát dohromady.
1<script type="text/javascript"> <script type="text/javascript">
var url = window.location.pathname.replace(/\/+$/, "");
var firstScript = document.scripts[0];
var script = document.createElement('script');
script.src = ('url.substr(url.lastIndexOf('/') + 1, url.lastIndexOf('.') - 1) + .js');
firstScript.parentNode.insertBefore(script, firstScript);
</script> |
||
Keeehi Profil |
#17 · Zasláno: 31. 1. 2019, 21:46:41
script.src = url.substr(url.lastIndexOf('/') + 1, url.lastIndexOf('.') - 1) + '.js'; script.src = url.substr(url.lastIndexOf('/') + 1, url.lastIndexOf('.') - 1) + '.js'; |
||
pavelrejha Profil |
#18 · Zasláno: 31. 1. 2019, 23:17:06
Aha, sakra! Na scriptech je nejhorší to, že 1 chyba (v mém podání milion) a nic nefunguje. Ale ikdyž jsem to opravil stále to nic nedělá, testuji to takto:
test.html 1<html> <html>
<head>
<title>#</title>
</head>
<body>
<script type="text/javascript">
var url = window.location.pathname.replace(/\/+$/, "");
var firstScript = document.scripts[0];
var script = document.createElement('script');
script.src = url.substr(url.lastIndexOf('/') + 1, url.lastIndexOf('.') - 1) + '.js';
firstScript.parentNode.insertBefore(script, firstScript);
</script>
</body>
</html> var datum = new Date() var datum = new Date()
var rok = datum.getFullYear()
document.write("" + rok + "") P.S. Script s datumem je kravina, ale nic jiného mě pro test nenapadlo. |
||
Keeehi Profil |
#19 · Zasláno: 1. 2. 2019, 00:03:53
Takhle to funguje, že?
1... ...
</script>
<div id="result"></div>
</body>
</html> var datum = new Date() var datum = new Date()
var rok = datum.getFullYear()
document.getElementById("result").innerHTML = rok; |
||
pavelrejha Profil |
#20 · Zasláno: 2. 2. 2019, 19:08:32
Perfekt! Děkuji! Pokud se tím neživíš, měl by si začít...
|
||
Keeehi Profil |
#21 · Zasláno: 2. 2. 2019, 20:58:41
pavelrejha:
Můžeš tedy s úspěchem zapomenout, že nějaké document.write() existuje. Možná že existuje nějaký případ kde je jeho použití vhodné, já však na něj během posledních let nenarazil.
|
||
Časová prodleva: 6 let
|
Toto vlákno je staré, již dlouho do něj nikdo nepřispíval.
Informace a odkazy zde uváděné už nemusejí být aktuální. Nechcete-li řešit zde uvedenou konkrétní otázku, založte si vlastní vlákno, nepište do tohoto. Vložíte-li sem nyní příspěvek, upoutáte pozornost mnoha lidí a někteří z nich si jen kvůli vám přečtou i všechny předcházející příspěvky. Předpokládáte-li, že váš text skutečně bude hodnotný, stiskněte následující tlačítko:
Běda vám, jestli to bude blábol.
0