Autor Zpráva
Anonymouz
Profil
Potřebuji vytáhnout pomocí ajaxu url adresu pozadí elementu z nadřazené stránky a podstrčit do současné stránky se stejnou strukturou a identifikátorem. Bohužel se mi nedaří zmíněnou vlastnost načíst ačkoliv vím, že tam je. Ukázka Živá ukázka Děkuji za každou radu.
David_0
Profil *
1) Tohle jQuery('#ajax').load(' Živá ukázka') ti do elementu #ajax vloží celý obsah té url. Máš pak na stránce duplicitní ID, což není dobré.
2) Ta testovací živá ukázka nebude fungovat, protože v té cílové url element #banner fyzicky není.

$.get('http://kod.djpw.cz/baxc', '', function (data) {
    var x = jQuery(jQuery.parseHTML(data));
    console.log(x.find('#banner').length);
});
Vypíše 0.


ad 1: jQuery('#ajax').load('tvoje url')
Anonymouz
Profil
Jo už jsem taky zjistil, že hlavní problém jsem měl v tom, že jsem to dělal na živé ukázce, kde se to nedá dělat. I jsem narazil na to, že ta duplicita veškerého obsahu je špatná. Funguje to dokud je stránka malá, ale v praxi to vypadá tak, že obě stránky jsou velké a přesouvat celou velkou stránku je tedy pěkně pomalé. Proto se to snažím načítat jen daný selektor udělat následovně jQuery('#ajax).load(' Živá ukázka #banner') Což se mi teda přesune, ale už na to nejde navěsit .css('background-image')
Hledal jsem na internetu jak vyzobnout pouze tu jednu url z background jiné stránky, ale nic se mi nepodařilo najít, takže zatím bojuji.
David_0
Profil *
Stejně nějak nechápu smysl toho, že chceš nastavit background na jedné stránce hodnotou z druhé stránky. Můžeš to blíže objasnit? První stránka je tvoje a druhá cizí (=> na té druhé nemůžeš ovlivnit kód)?
Anonymouz
Profil
David_0:
Vkládat můžu pouze html javascript a css respektive pouze html se značkami <script></script>.
Zkoušel jsem to i takto, ale tahá mi to url ze současné stránky a ne té zdrojové. Živá ukázka
Stačí mi získat pouze tu adresu a bude to hotové.
Anonymouz
Profil
Stránka kterou mám v ajaxu nemá tu CSS vlastnost napsanou in-line zápisem, ale má ji normálně v hlavičce v souboru, který se generuje pomocí php na základě toho o jakou stránku se jedná. Není náhodou tohle důvod, proč tu adresu nemůžu ajaxem najít, protože v samotném html dokumentu prostě není, ale musí se nejprve stáhnout z toho linknutého stylesheetu?
Dokáže ajax vůbec stahovat podobná data, která se musí nejprve vygenerovat k dané stránce? Abych tady zbytečně nelovil něco co, vlastně ani nejde.
Davex
Profil
Není zbytečné načítat tu jinou stránku a nebylo by jednodušší si skriptem rovnou přilinkovat vhodný stylopis?
Anonymouz
Profil
Rozvedu o co jde. Bude stránka, která má filtraci článků podle kategorií pojištění. A na té stránce se má měnit background za titulkem na základě toho, jaký filtr pojištění si člověk zvolí. Jednotlivé selecty mají value, jako koncový slug dané kategorie, ze které se má vzít background. Těch kategorií bude cca 8 a background jejich titulku je napsaný v css souboru, který se automaticky generuje, takže nemá fixní název. Do filtru se nemůže nijak zasahovat ani do stránek s kategorií. Bohužel nemůžu ukázat náhled stránky.

Jediné co lze použít je javascript, takže myšlenka byla taková, že při změně selectu (filtru článků dle pojištění) se spustí script s ajaxem směřujícím na url, která odpovídá value daného selectu a z té adresy se najde titulek, který má stejnou třídu a vytáhne se z něj adresa pozadí. Snad jsem to popsal srozumitelně. To že by to byla víceméně prasárna a lidé bez JavaScriptu neuvidí změnu, je prý fuk.

Je tohle nějak řešitelné, nebo je lepší od toho dát ruce pryč?
Kajman
Profil
Asi můžete dát stáhnutý obsah do iframe, aby se načetly styly (možná bude potřeba upravit cesty, nebo nastavit base). Pokud to je na stejné doméně, tak do iframe se může dát rovnou stránka místo stahování obsahu. Když bude mít ten element v iframe správné pozadí, mohlo by to jít načíst díky
Window.getComputedStyle()
Radek9
Profil
Anonymouz:
Nějak takhle: Živá ukázka
Kajman
Profil
Ve firefoxu to funguje jen bez display = 'none'. Ale lze nastavit
iframe.style.width = 0;
iframe.style.height = 0;
iframe.style.border = 0;
Anonymouz
Profil
To vypadá hodně dobře. V rámci té funkce loadBackground nelze změnit to pozadí přepisem proměnné? V konzoli změnu vidím, ale na stránce ne.


Edit: Vyřešeno Moje chyba jsem degen :D Živá ukázka

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0