Autor Zpráva
Hajaxa
Profil
Zdravím,
Na webu mám dva boxy s Adsense. Vytvořil jsem si podmínku pro odstranění boxu podle velikosti okna prohlížeče. Problém je ten, že pokud se podívám do zdrojového kódu, vidím zde, že jsou tam oba. Na stránce se zobrazuje pouze jeden. Vše řeším přes metodu .remove();.

Potřebuji kód smazat, tak aby se neobjevil ve zdrojovém kódu.
Jde toho nějakým způsobem dosáhnout? Díky.

<div class="adsense1"> ... script </div>
<div class="adsense2"> ... script </div>
<script>              
if (document.documentElement.clientWidth > 1740) {
     $(document).ready(function(){
             $(".adsense1").remove();         
    });
};
if (document.documentElement.clientWidth < 1740) {
         $(document).ready(function(){
             $(".adsense1").remove();         
     });
 };            
</script>
soucekgns
Profil
Hajaxa:
Potřebuji kód smazat, tak aby se neobjevil ve zdrojovém kódu.
Zdrojový kód upravovaný pomocí js je dynamická věc -> po odebrání už to ve zdrojovém kódu na straně uživatele dočasně není. Když si necháš zobrazit zdrojový kód, vypíše to ten poskytnutý stránkou bez těchto úprav.
a) Proč to nemůže být v tom kódu?
b) Ještě můžeš použít append, který ti tam ty addsence bloky přidá místo toho, aby je odebral.
Hajaxa
Profil
soucekgns:
Append jsem zkoušel, bohužel bez úspěchu. V tomto případě je tam problém, protože adsense je script.

Pokud je to možné, můžeš ho sem napsat? Díky moc.

Zde je adsense kód:
<script type="text/javascript"><!--
                google_ad_client = "ca-pub-XXXXXXXXX";
                google_ad_slot = "XXXXXXXXX";
                google_ad_width = 728;
                google_ad_height = 90;
                //-->
            </script>
            <script type="text/javascript"
            src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
            </script>
soucekgns
Profil
Hajaxa:
Co tohle? jquery-cant-append-script-element
Hajaxa
Profil
soucekgns:
Díky za odkaz.
Vyzkoušel jsem to nejdříve na na funkci alert. Ale nefunguje.
function AddScript(url, object){
    if (object != null){
        // add script
        var script   = document.createElement("script");
        script.type  = "text/javascript";
script.text  = "alert('voila!');";

        document.body.appendChild(script);

        // remove from the dom
        document.body.removeChild(document.body.lastChild);
        return true;
    } else {
        return false;
    };
};

function DeleteObject(UnusedReferencedObjects) {
    delete UnusedReferencedObjects;
}
Nevíš, kde by mohl být problém?
Hajaxa
Profil
Vyzkoušel jsem snad všechny možnosti od append až do replaceWit, bez úspěchu.

Pokud někdo ví, jak na to, budu rád za každou radu.
Chamurappi
Profil
Reaguji na Hajaxu:
Co je přesně cílem? Na první pohled to vypadá poněkud… triviálně.
Jestli chceš servírovat při užším zobrazení jinou reklamu než při širokém, proč se snažíš měnit strukturu HTML kódu a podmíněně načítat skript? Proč prostě nezměníš ty parametry, které rozměry reklamy ovlivňují? (Mám na mysli proměnné google_ad_width a google_ad_height.)
Hajaxa
Profil
Chamurappi:
Mohl bych Tě poprosit o kód pro změnu těchto parametrů?

Díky moc
Chamurappi
Profil
Reaguji na Hajaxu:
Mno, if už znáš, přiřazování do proměnné asi také… a ty googlí proměnné jsou obyčejné proměnné. To zvládneš.
Hajaxa
Profil
Chamurappi
Dobře tedy, zkusil jsem to sepsat.
Akorát nejsem si úplně jist proměnnými. Mohu poprosit o zkontrolování. Díky.
<script>              
if (document.documentElement.clientWidth > 1740) {
     $(document).ready(function(){
           var width = "728"; 
           var height = "90"; 
    });
};
if (document.documentElement.clientWidth < 1740) {
         $(document).ready(function(){
           var width = "468"; 
           var height = "60";    
     });
 };            
</script>

<script type="text/javascript"><!--
                google_ad_client = "ca-pub-XXXXXXXXX";
                google_ad_slot = "XXXXXXXXX";
                google_ad_width = document.write(width);
                google_ad_height = document.write(height);
                //-->
            </script>
            <script type="text/javascript"
            src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
            </script> 
_es
Profil
Hajaxa:
Príkaz var nemá byť v podmienene vykonávaných častiach kódu - v niektorých prehliadačoch to môže robiť problémy.

                google_ad_width = document.write(width);
                google_ad_height = document.write(height);
Ako ťa toto napadlo? Čo čakáš, že funkcia document.write vráti?
Chamurappi
Profil
Reaguji na Hajaxu:
Metoda document.write vypisuje HTML kód do stránky a nic nevrací, nejde ji použít k vypsání hodnoty proměnné dovnitř <script>u. V prvním skriptu, který jsi uvedl, na řádcích 4 a 5 a 10 a 11 normálně přiřazuješ do proměnné, tak proč ti to nejde i ve druhém skriptu na řádcích 4 a 5?

Nevím, proč tam šachuješ s $(document).ready, zapomeň, že tahle jQuery-věc existuje. Na nastavování proměnných, které se používají k určení rozměrů banneru, v době, kdy je stránka načtená, je už pozdě.
Hajaxa
Profil
Chamurappi:
Přes co tedy konkrétněji proměnnou vypsat do <script>u?

<script>              
if (document.documentElement.clientWidth > 1740) {
           var width = "728"; 
           var height = "90"; 
};
if (document.documentElement.clientWidth < 1740) {
           var width = "468"; 
           var height = "60";    
 };            
</script>

<script type="text/javascript"><!--
                google_ad_client = "ca-pub-XXXXXXXXX";
                google_ad_slot = "XXXXXXXXX";
                google_ad_width = document.write(width);
                google_ad_height = document.write(height);
                //-->
            </script>
            <script type="text/javascript"
            src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
            </script> 
_es
Profil
Hajaxa:
Přes co tedy konkrétněji proměnnou vypsat do <script>u?
Ako „vypsat“? Chamurappi ti písal o ich „nastavení“, teda trebárs google_ad_width=728;.
Hajaxa
Profil
Omlouvám se, ale už nevím jak dál.
Mohu požádat o vypsání proměnných.
Díky.
Chamurappi
Profil
Reaguji na Hajaxu:
Pokud je šířka větší než 1740, nastav google_ad_width na 728, jinak ji nastav na 468 — to je opravdu tak těžké přepsat toto souvětí do jednoho ifu?
Nenastavuj do width, nastavuj do google_ad_width. Nenastavuj do height, nastavuj do google_ad_height.
Hajaxa
Profil
Chamurappi:
Chápu, vyzkouším.
Ale je to jen přeci jenom nešikovné řešení. Co když budu mít na stránce několik adsense reklam?
Hajaxa
Profil
Díky, funkční,
Nakonec to nebylo nijak složité, vzhledem k tomu, že na stránce mám pouze jeden banner. Co když, ale budu mít na stránce několik adsense reklam?
Chamurappi
Profil
Reaguji na Hajaxu:
Tak hodnotu té proměnné upravíš víckrát, na více místech… to také není o moc složitější.

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: