Autor | Zpráva | ||
---|---|---|---|
tester Profil * |
#1 · Zasláno: 15. 8. 2016, 21:57:12
Máte nějaký nápad jak to udělat když potřebuju zaměnit adresy v src a href (především u obrázku a linků) tak aby místo relativních odkazů byly absolutní odkazy?
předpokládám že mám var host = www.stranka.cz; var innerhtml = "..." // jakékoliv html, může obsahovat třeba seznam článků. Používám JQuery a v současnosti používám toto: $("div#content").append(innerhtml); Do panelu se vloží html, ale obrázky se nezobrazí protože pochází z jiné stránky. Když tedy dodám proměnnou host, jak to udělat? Zdá se mi že dělat parsování je zbytečné. Možná přidat innerhtml do dočasného elementu div#temp, který není součástí stránky a tento element projít pomocí JQuery? Vytvořit příkaz na hledání tagů a, img nebo frame/iframe a jiné tagy které by mohly obsahovat odkaz a jak bude zdroj nahrazen tak přesunout obsah tagu div#temp do div#content? |
||
juriad Profil |
#2 · Zasláno: 15. 8. 2016, 23:27:14
|
||
tester Profil * |
#3 · Zasláno: 16. 8. 2016, 08:28:10
Díky moc, jsem netušil že je to až tak jednoduché.
|
||
tester Profil * |
#4 · Zasláno: 16. 8. 2016, 12:03:18
Jak zjistit jestli se jedná o relativní adresu? Nejdříve jsem si myslel že zkontroluju jestli je na začátku lomítko ale tvůj příklad zrovna ukazují situaci, že lomítko tam být nemusí a přesto to bude relativní.
|
||
juriad Profil |
Asi bych na to šel pomocí iframe a tagu base: Živá ukázka
Vytvoří iframe, ve kterém nasimuluje původní hostitelské prostředí a upraví adresy tak, aby posovaly, následně je celý obsah přenesen do původní lokality. Pozor na to, že skripty, které jsou v tom html stringu se spustí v iframe a nikoli ve stránce (nadpis není červený). |
||
tester Profil * |
#6 · Zasláno: 16. 8. 2016, 13:56:31
Díky. O tom tagu jsem ještě neslyšel, ale přivedlo mě to k jednoduššímu řešení:
$("html > body").append('<base href="' + package.host + '">'); |
||
Časová prodleva: 8 let
|
0