Autor Zpráva
Pepsina
Profil *
Zdravím,
chtěl jsem si na své stránky dát tlačítko google +.
Využil jsem tento generátor Generátor

Když jsem si nechal vytvořit kod, tak jsem ho umístil na své stránky.

Tohle jsem umístil do kodu, kde bych tlačítko chtěl mít:

<!-- Umístěte tuto značku na místo, kde chcete zobrazovat tlačítko +1. -->
<g:plusone annotation="inline"></g:plusone>

A tohle jsem dal před uzavírací značku body:

<!-- Umístěte tuto žádost o vykreslení na příslušné místo. -->
<script type="text/javascript">
  window.___gcfg = {lang: 'cs'};

  (function() {
    var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
    po.src = 'https://apis.google.com/js/plusone.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
  })();
</script>

Ale tlačítko se mi nezobrazuje. Nevíte čím by to mohlo být. Někde jsem něco četl, že záleží i na kodovaní stránky, ale ikdyž jsem zkoušel jiná kodování, tak tlačítko mi prostě nefungovalo.
předem děkuji za odpověď
Str4wberry
Profil
Prosím o odkaz na živou ukázku.
Pepsina
Profil *
Živá ukázka
_es
Profil
Pepsina:
Prečo si dal element <script> pred miesto, kde má byť tlačítko? Ako má ten skript pracovať s neexistujúcim elementom?

A tohle jsem dal před uzavírací značku body
Nedal.
Pepsina
Profil *
_es:

Prosím tě s tím elementem <script> jsem tě vůbec nepochopil co tím myslíš.

„A tohle jsem dal před uzavírací značku body“
Nedal.


pardon měl jsem namysli </head>
YoSarin
Profil
Pepsina:
Prohlížeč vykresluje stránku postupně - nejdřív head, pak body... Je-li javascript zobrazující tlačítko v hlavičce, tak se provede ještě před tím, než se prohlížeč dopracuje v kódu k místu kde je element <g>. tzn. že se vykoná v okamžiku kdy ten element ještě neexistuje, tudíž neví kam má tlačítko zobrazit.

Buď všechno co je v tom script navaž na onload, nebo ho vlož až na konec <body> (před </body>).
_es
Profil
Pepsina:
Prosím tě s tím elementem <script> jsem tě vůbec nepochopil co tím myslíš.
Citujem z toho generátora:
Umístěte tuto žádost o vykreslení na příslušné místo.
Ako sa ti má vykresliť to tlačítko v mieste značky <g:plusone>, keď v čase behu skriptu tá značka neexistuje, lebo si dal skript pred značku?
Pepsina
Profil *
takteďka jsem už úplně zmatený :-(
já jsem to pochopil tak, že ten script mám dát do head a ten zybtek do místa, kde chci aby se mi zobrazovalo tlačítko. JS se nevyzvám, takže vůbec tě nechápu. :-( Má to teda nějak vypadat takto?

<div class="social">
<!-- Umístěte tuto žádost o vykreslení na příslušné místo. -->
<script type="text/javascript">
  window.___gcfg = {lang: 'cs'};

  (function() {
    var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
    po.src = 'https://apis.google.com/js/plusone.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
  })();
</script>

<!-- Umístěte tuto značku na místo, kde chcete zobrazovat tlačítko +1. -->
<g:plusone></g:plusone>

                        
    </div>    

Ikdyž jsem to zkoušel takto tak to nefungovalo.Já už fakt nevím, co dělám špatně
_es
Profil
Pepsina:
Ja to nepoužívam, možno že aj na poradí nezáleží, no ak áno, tak by mal byť <script> za značkou <g:plusone>.
YoSarin
Profil
Pepsina:
jak jsem psal - html se vykresluje (a provádí) postupně. Takže ty mu v podstatě říkáš: "najdi ve stránce element <g>", Jenže v ten okamžik HTML které má prohlížeč k dispozici vypadá cca takhle:
<head> <!-- obsah hlavičky --></head>
<body>
<!-- a tímhle to končí, dál nic není -->
Takže on tam žádné <g> nenajde a skončí chybou. Poté teprve do stránky přibude <g:plusone></g:plusone>, ale to už ho nikdo nehledá.

Proto musíš (jak říká _es) nejdřív do stránky vložit element <g> a až za něj <script>.
Pepsina
Profil *
Dal jsem to před g:plusone, za g:plusone dovnitř a prostě nic. Nefunguje :-(
YoSarin
Profil
Pepsina:
Ve stránce to máš pořád před tím. Vlož to na konec a napiš - podíváme se proč to nefunguje...
Pepsina
Profil *
já jsem to vždycky vrátil na původní místo. Teďka to je úplně nakonci před </body>

http://testujemexxx.wz.cz/preklady-polstina-cestina/
YoSarin
Profil
Pepsina:
Hmm, tak na tomhle odkazu mi nefungují (nezobrazují se) ani tlačítka na twitter, FB a ostatní sociální sítě...
Pepsina
Profil *
Tak to je divné. Já jsem schválně si znova tento odkaz otevřel a nezobrazuje se mi akorát ten google + :-/
YoSarin
Profil
Pepsina:
aha, to asi zaúřadoval adblock a jeho averze k trojitým x...


Z firebugu mi vypadlo:
invalid array length
this.length--;
prototype.js (řádek 464)

Tahle chyba asi zastaví provádění zbytku kódu - zkuste nějak vydebugovat kdy se ta funkce volá a jestli se volá se správnými parametry...
Pepsina
Profil *
Aha. :-) omlouvám se za tu domenu :-)
Pepsina
Profil *
jej, tak to jsem v ..... To bude problém, protože v kodu a v JS se nevyznám. myslel jsem, že si vygeneruji kod, vložím na stránky a vše bude šlapat, ale nějak jsem se asi spletl.
_es
Profil
Pepsina:
Asi sa to „bije“ s nejakými inými JS súbormi. Máš v tom kóde dosť „bordel“.
YoSarin
Profil
Bohužel nemám sílu najít co konkrétně to způsobuje - zkuste si třeba trochu pohrát s možnostmi v tom generátoru (odškrtnout políčko "Asynchronní") - třeba některá z variant fungovat bude...
_es
Profil
YoSarin:
Tahle chyba asi zastaví provádění zbytku kódu
Iné JS súbory fungujú oddelene a Google+ nevyužíva uvedenú knižnicu.

YoSarin: Pepsina
co konkrétně to způsobuje
Nejaký iný JS súbor, lebo ak ostatné znefunkčníš, tak to bude fungovať.
YoSarin
Profil
_es:
kdykoli jsem zkusil v konzoli pustit kód vložený do skriptu, tak mi to tuhle chybu vyhodilo (taky jsem se divil že by google api používalo prototype). Znefunkčňovat všechno jsem nezkoušel, je tam toho moc... :(
_es
Profil
YoSarin:
je tam toho moc
Asi bude robiť problémy nejaký externý skript, postačí vyskúšať znefunkčniť všetky src v <script>, okrem Google+.
Pepsina
Profil *
\tak to je pro měnová zkušenost. vyhodil jsem nepotřebné scripty a najednou se to rozjelo. Když jsem třeba nějaky vložil zpátky, tak mi to zmizlo. Vždycky jsem si myslel, že stránka může mít kolik chce scriptu.
I tak moc děkuji. Hlavně že se to rozjelo.

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: