簡體   English   中英

如果使用JavaScript動態構建標記,Schema.org標記是否有效?

[英]Does Schema.org markup work if markup is dynamically built with JavaScript?

我有一個頁面,通過使用JavaScript讀取一些JSON動態加載一些事件。 我使用Event Schema.org標記為每個事件構建一個div

Google的測試工具不會讀取此標記。 是因為標記中的錯誤,還是因為動態加載?

一個Event的HTML代碼是:

<div class="evento well" itemscope itemtype="http://schema.org/Event">
   <meta itemprop="startDate" content="2015-03-20T20:00:00.000Z">
   <meta itemprop="endDate" content="2015-01-21T20:00:00.000Z">
   <div class="dataEvento">
      <div class="dayWeekEvento">venerdì</div>
      <div class="dayNumEvento">20</div>
      <div class="monthEvento">Marzo</div>
   </div>
   <div class="datiEvento">
      <div class="oraEvento">ore 21:00</div>
      <div class="titoloEvento"><span itemprop="name">Titolo evento</span></div>
      <div class="luogoEvento" itemprop="address" itemscope="" itemtype="http://schema.org/PostalAddress"><a href="https://www.google.it/maps/place/Milano" target="_blank"><span class=" glyphicon glyphicon-map-marker" aria-hidden="true"></span> <span itemprop="addressLocality">Milano</span></a></div>
   </div>
</div>

Google的文檔僅提及如果使用語法JSON-LD,他們可以使用動態添加的結構化數據:

此外,Google可以讀取JSON-LD數據,即使它被動態注入到頁面內容中,例如通過Javascript代碼或嵌入式“小部件”。

這並不一定意味着在其他語法(如Microdata或RDFa)的情況下它們無法讀取它,但至少它們不會記錄它。

他們的測試工具沒有讀取它可能會或可能不會意味着什么( 可能是該工具不處理這個,但他們的內部系統確實如此)。 但是,實際標記應該沒有問題,因為您可以通過粘貼標記而不是輸入URL來輕松地自行測試。

如果您在使用Google測試工具驗證模式標記時遇到問題,可以使用JS創建json-ld片段,這也允許您在需要時操作數據,如:

<script> 
    (function(){
       var data = {
            "@context": "http://www.schema.org",
            ...
        }
        var script = document.createElement('script');
        script.type = "application/ld+json";
        script.innerHTML = JSON.stringify(data);
        document.getElementsByTagName('head')[0].appendChild(script); 
    })(document);
</script>

這取決於它是什么類型的標記。 來自Google

所有Knowledge Graph功能,附加鏈接搜索框,Event Rich Snippets和Recipe Rich Snippets都支持JSON-LD; Google建議將JSON-LD用於這些功能。 對於剩余的Rich Snippets類型和面包屑,Google建議使用微數據或RDFa。

它應該工作,但我知道人們已經報告了測試工具的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM