web-dev-qa-db-fra.com

L'appel JS me donne une valeur de texte au lieu d'un lien HTML pour la propriété Microdata

J'essaie d'extraire l'URL du livre d'un lien à l'aide de Microdata. Le format est spécifié dans Schema.org.

Voici mon HTML:

<div class="col-sm-4 col-md-3" itemscope itemtype="http://schema.org/Book">
                <div class="thumbnail">
                    <img src="{{ book.thumbnailurl }}" itemprop="thumbnailUrl" style="width: 100px;height: 200px;">
                    <div class="caption">
                        <h4><span itemprop="name">{{ book.name }}</span> - <span itemprop="author">{{ book.author }}</span></h4>
                        <p><span itemprop="about"> {{ book.about }}</span></p>
                        <p> 

                                <a href="{{ book.url }}" itemprop="url" onclick="trackOutboundLink(‘{{ book.name }}’);">
                                  <button type="button" class="btn btn-default btn-md">
                                    <span class="glyphicon glyphicon-book"></span>Read
                                  </button>
                                </a>

                        </p>
                    </div>
                </div>
             </div>

Lorsque j'utilise l'outil de test des extraits de code de Google , l'API JSON renvoie book sous forme de lien HTML. Cependant, lorsque je passe un appel en JavaScript, la valeur de url est text ("Read").

Qu'est-ce que je rate?

1
Joesoc

Ok enfin après avoir beaucoup creusé, j'ai la réponse.

La cause première est la suivante: Le moteur de recherche personnalisé Google CSE ne consomme pas la valeur de la propriété de microdonnées en tant qu'attribut href de l'élément HTML "a". Il consomme le contenu de texte enfant sur l'élément HTML "a".

Google CSE est capable de consommer le href à partir d'un élément HTML "link".

Donc.

 <a href="{{ book.url }}" itemprop="url" onclick="trackOutboundLink(‘{{ book.name }}’);">

ne fonctionnera pas.

 <link itemprop="url" href="{{ book.url }}">
 <a href="{{ book.url }}" onclick="trackOutboundLink(‘{{ book.name }}’);">

travaux.

1
Joesoc