Autor Zpráva
Milkys
Profil
Potřebuji do divu six něco vypsat. Zkouším to s innerHTML, ale nefunguje to - reklama se nezobrazí.

document.getElementById("six").innerHTML = 'zde mám uveden kod reklamy google adsence';
_es
Profil
Milkys:
zde mám uveden kod reklamy google adsence
A prečo nevložíš reklamu „normálne“ podľa oficiálneho návodu na jej vloženie?

reklama se nezobrazí.
Asi preto, že elementy script vložené cez innerHTML sú nefunkčné.
Milkys
Profil
_es:
Děkuji za reakci.
Reklamu bych vložil normálně, ale odchytávám si javascriptem šířku sloupce resp. určitého divu a podle toho jaká je splněna podmínka šíře sloupce vkládám jinak velký banner.

Asi preto, že elementy script vložené cez innerHTML sú nefunkčné.
Takže to nejde udělat s innerHTML?
Existuje jiný způsob? Javasriptu moc nerozumím.
Milkys
Profil
Ještě prosím doplním, že se jedná o responsive design. Proto se mění šířky divů.
Děkuji vřele za reakce.
Chamurappi
Profil
Reaguji na Milkyse:
Tipnul bych si, že si při změně velikosti okna nesmíš říct o novou reklamu. Že to bude proti podmínkám (jakéhokoliv) reklamního systému.
Se zjištěním rozměru okna v okamžiku načtení stránky není problém a tam nepotřebuješ používat innerHTML.
honzaik
Profil
tak tedy jedno z řešení je toto
var el = document.createElement("script");
var script = document.createTextNode('samotny skript');
el.appendChild(script);
document.body.appendChild(el);
nevim jestli to funguje pisu to na telefonu a momentalne to nemam jak vyzkouset, takze nezarucuju funkčnost
Milkys
Profil
honzaik:
tak jsem asi trochu mimo. Mohl by mě někdo zkušenější trochu více nakopnout.
Testnul jsem to takto a samozřejmě bez úspěchu:
var sirka_six = 340;
if (sirka_six > 339) {
   var el = document.createElement("six");
   var script = document.createTextNode('<script type="text/javascript">document.write("test");<\/script>');
   el.appendChild(script);
   document.body.appendChild(el);       
}
honzaik
Profil
aspon trochu snahy ne? :D staci si najit jak kdejake funkce atd funguji ;) do createElement se dava nazev tagu např div, span nebo zde script. do text node se vklada to co je mezi tagy script tedy "document.write('baf');" ale document.write se nedoporucuje protoze v urcitem umisteni maze zbytek stranky (vytvori nový document) dal bych tam neco jako "console.log('test')" a nit otevrenou js konzoli v prohlížeči, ve ktere se tato zprava zobrazi
Chamurappi
Profil
Reaguji na Milkyse:
Proč vyrábíš element <six>?
Příspěvek od honzaika můžeš ignorovat, jeho skript stejně nefunguje ve všech prohlížečích a i kdyby fungoval, document.write vyvolaný po načtení stránky by se ti nelíbil.

Tobě by na místě inzerenta vyhovovalo, kdyby se ti protočila reklamní imprese v okamžiku, kdy si někdo otočí tablet o 90°?
Milkys
Profil
Chamurappi:
Tobě by na místě inzerenta vyhovovalo, kdyby se ti protočila reklamní imprese v okamžiku, kdy si někdo otočí tablet o 90°?
Tak toto jsem vůbec nedomyslel a rozhodně jsem to neměl v úmyslu. Pokud by to mělo dělat nějaké podvody - tak to ne. To není má parketa - lehko nabyl - lehko pozbyl.

Jde mi jen o to, že pokud bude mít div s id=six více jak 339 px tak se mi do tohoto divu banner široký 336 px vejde.
Pokud bude šíře div s id=six menší, např. 268 px použil bych rád banner samozřejmě užší např. 250x250px.

Dalo by se toto vyřešit tak, aby to nebyl podvod a neokrádal jsem inzerenty? Nebo je to utopie?
Chamurappi
Profil
Reaguji na Milkyse:
Jak jsem již psal, změříš-li rozměry v okamžiku načítání, v tu dobu asi způsob vložení banneru ovlivnit můžeš…
Ale na dodatečné změny proporcí asi reagovat nejde, pokud na to AdSence nemá nějaké API, které by dokázalo již tu jednou načtenou reklamu přeformátovat.
Milkys
Profil
Chamurappi:
Šířku prvku konkrétně divu zjišťuji js tzn., že až po načtení stránky.
var sirka_six = document.getElementById('six').offsetWidth;
Zjistit šíři prvku v průběhu načítání stránky neumím ani jsem se s tím zatím nesetkal.
Zkusím kouknut někam jinam jestli to už někoho nenapadlo předemnou a jak dopadl.
Děkuji za reakce všem.
V podstatě nevyřešeno. Pokud najdu řešení - dám to sem.
Chamurappi
Profil
Reaguji na Milkyse:
Šířku prvku konkrétně divu zjišťuji js tzn., že až po načtení stránky.
JS se spouští okamžitě. Nečeká na donačtení stránky, pokud mu to explicitně neporučíš. Uvedený kód zjistí šířku elementu s id="six" v době, kdy na něj prohlížeč narazí v HTML.
Milkys
Profil
Chamurappi:
Tak potom by to snad nebylo podvodné jednání z mé strany.
Zjistím šířku divu a podle toho zobrazím příslušnou velikost banneru.
Jen nevím jak pomocí js vypsat kod adsence reklamy.
Chamurappi
Profil
Reaguji na Milkyse:
Tohle bude z hlediska práva v pořádku, protože se bude reklama načítat jen jednou na jedno zobrazení stránky.

Jen nevím jak pomocí js vypsat kod adsence reklamy.
Pokud si dobře vzpomínám, tak kód AdSence se skládá ze <script>u, ve kterém jsou v javascriptových proměnných nastavené parametry (včetně rozměrů), a pak z externího JS, který tyto hodnoty baští. Takže tobě stačí jen změnit ty proměnné, v nichž jsou rozměry, ne?
Milkys
Profil
Chamurappi:
Ano vzpomínáš si dobře.
Možná budeš mít asi pravdu s těma rozměrama. Tak to je teda pořádné nakopnutí, to je ostuda. Zkusím a dám vědět. Proč drbat pravé ucho pravou rukou, ono to jde i levou...
Milkys
Profil
Chamurappi:
děkuji, je to jednoduché. Opravdu stačí jen odchytit šířku divu a podle šířky měnit parametry banneru google_ad_slot, google_ad_width a google_ad_height.

<div id = "six">
                              <script type="text/javascript">
                              var sirka_six = document.getElementById('six').offsetWidth;
                              if (sirka_six > 339) {
                              var s = "cislo";
                              var w = sirka_banneru;
                              var h = vyska_banneru;
                              }
                              if (sirka_six == 300) {//jina velikost
                              var s = " jine_cislo";
                              var w = jina_sirka_banneru;
                              var h = jina_vyska_banneru;
                              }
                              
                              google_ad_client = "ca-pub-cislo";
                              google_ad_slot = s;
                              google_ad_width = w;
                              google_ad_height = h;
                              </script>
                              <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>                              
                              </div>

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:

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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