Autor Zpráva
MTB
Profil *
Zdravím všechny, ahoj.

Řeším momentálně jeden problém s execute scriptu vložené do DOMU. Situace je taková:

Na stránce je volán script, který zjistí všechny možné prostory na webu (prostor například divID5, divID6), tyto ID jsou poslány pomocí AJAXU na server, který vrací javascript. Tento javascript potřebuju uložit do daného prostoru (javascript pro ID5 vložit do divID5 a javascript pro ID6 potřebuji vložit do divID6). Není problém tam javascript vložit, nicméně je problém ho vykonat.

Našel by se někdo, kdo by si s tímto věděl rady? Potřebuji to v čistém javascriptu (without jquery).


Díky za jakékoliv rady.
Radek9
Profil
MTB:
Podle mě něco děláš špatně. Proč ti ten požadavek vrací JS? Nebylo by lepší vrátit nějaká data a podle nich něco vykonat? Pokud na tom ale trváš, tak musíš použít eval() nebo dynamicky vytvořený <script>.
MTB
Profil *
je to javascriptový banner (reklamní kampaň) a vrací to přímo server klienta, to bohužel neovlivním.

Pokud použiju eval, z nějakého důvodu se kód provede v rámci celého dokumentu a né pouze v rámci daného prostoru (např divID5). Dynamicky <script> myslis jak?

Mě napadlo nějakým způsobem vytvořit dočasný javascript file s daným obsahem který by se skrz script src inportoval v danem místě. Zda by to ale fungovalo a jak na to ale netusim.

Napadá tě něco?

Díku dík!
Radek9
Profil
MTB:
Co konkrétně myslíš tím prostorem? To je prostě <div> s ID divID5? Co ten JS soubor obsahuje? Jak probíhá výpis toho banneru? Pokud je to realizováno přes document.write, tak ten logicky po kompletaci stránky celou stránku přepisuje (jelikož je ten požadavek asynchronní, tak prostě neví, kam to má vypsat). Musel bys pro každý požadavek document.write předefinovat tak, aby vypisoval data do konkrétního <div>u.
Keeehi
Profil
Javascript funguje vždy v rámci celé stránky, ne jen v nějakém elementu.
Potřebovali bychom vědět, jak vypadá ten javascript, co obdržíš.
MTB
Profil *
Formáty toho javascript jsou různé, zde zasílám ukázky:

ttp://adbook.cz/core/hodnota.txt - openx
adbook.cz/core/hodnota2.txt - google
adbook.cz/core/hodnota3.txt - adform
adbook.cz/core/hodnota4.txt - sklik
adbook.cz/core/hodnota5.txt - rubicon/cpex
adbook.cz/core/hodnota6.txt - ibillboard
adbook.cz/core/hodnota7.txt - branding webu
adbook.cz/core/hodnota8.txt - HTML5 ilayer
adbook.cz/core/hodnota9.txt - sticky board
Radek9
Profil
MTB:
Já se bojím, že tyhle reklamy nejsou dělané na to, aby se do stránky vkládaly asynchronně. Ve valné většině z nich je použit document.write, který se potýká s problémy, jež jsem popsal už výše. Je problém je tam vložit přímo? Nebo se vybírají podle nějakého kritéria? Bylo by lepší to udělat na straně serveru. Částečně by se to dalo vyřešit načtením konkrétni reklamy do <iframe>, ale pokud mají různé rozměry atp., tak to také není optimální řešení.
MTB
Profil *
Vybírají se podle specifických kritérií :/ a právě mají různé rozměry :/

Lze to vůbec nějak realizovat? :/
Chamurappi
Profil
Reaguji na MTB:
Reklamní systémy obvykle neumí fungovat asynchronně.
U některých z nich jde asynchronní načtení extrémně krkolomně dohackovat (což ani jejich provozovatelé nepřipustí, že by jít mohlo), ale pokud máš být schopný zobrazit spolehlivě naprosto libovolnou reklamu, nemáš šanci. V reklamním kódu může být prakticky cokoliv, reklamní kód je to, co stránce v důsledku vládne, a neexistují žádné ustálené limity činností, které by reklama dělat nesměla. Reklamní kódy některých nestandardních kreativ nedokážou nikdy fungovat bez synchronního výpisu. Jiné zase nejde spolehlivě zrušit, protože si nacpou své části mimo svůj vyhrazený prostor.

Vzdej to.

Pokud nechceš načíst celou stránku znovu, použít <iframe> je jediná možnost. Upozorňuji, že <iframe> omezí některé reklamy v rozletu – třeba ilayery (což jsou takové ty hnusy rozbalující se při najetí myši), branding (což je reklamní pozadí okolo obsahu), nebo sticky boardy (jestli se tím myslí zafixované bannery). Reklamám z Rubiconu znemožní načtení do rámu omylem přestylovat stránku, ale neznemožní jim infikovat uživatele virem.
MTB
Profil *
Myslel jsem si to, nicméně jsem chtěl znát názor více lidí, abych to mohl uzavřít.

Pokud se bavíme o iframu, mělo by být možné poskládat ho přímo po Ajax requestu v javascriptu, je tak? Zavolat URL do iframe a předat string parametr.

Díky moc!
_es
Profil
Chamurappi:
Pokud nechceš načíst celou stránku znovu, použít <iframe> je jediná možnost.
No ale reklamné systémy sa asi budú brániť načítaniu do iframe, či nie? Trebárs len tak, že takú reklamu nebudú pokladať za zobrazenú. A ak je iframe v tej istej doméne, tak sa môžu správať rovnako, akoby v iframe neboli.
Chamurappi
Profil
Reaguji na _es:
No ale reklamné systémy sa asi budú brániť načítaniu do iframe, či nie?
Zpravidla je jim to úplně fuk.
Reklamní systémy jsou nepřehledné chaotické džungle, jejichž skripty většinou ve webovém dávnověku napsali prapředci dnešních programátorů, ještě bez hlubšího porozumění naší řeči. Dříve bývalo celkem normální, že banner byl v rámu v rámu v rámu v rámu… a reklama se obvykle chce správně ukazovat i na webech a systémech, které jsou deset let neaktualizované, proto i reklamní kód většinou nezkoumá, jak moc je zanořený.

A ak je iframe v tej istej doméne, tak sa môžu správať rovnako, akoby v iframe neboli.
Teoreticky by mohly, ale ještě jsem se s tím nesetkal.


Reaguji na MTB:
Pokud se bavíme o iframu, mělo by být možné poskládat ho přímo po Ajax requestu v javascriptu, je tak?
Ano.

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: