Mengakses Tag Kondisional Halaman Blogger di dalam JavaScript

Tabel Konten
  1. Contoh 
Widget Manager
_WidgetManager._GetAllData()
document.addEventListener("DOMContentLoaded", function() {
    if (typeof _WidgetManager === "undefined") return;
    var data = _WidgetManager._GetAllData();
    // Lakukan sesuatu dengan `data` di sini …
}, false);

Contoh 

if (data.view.isSingleItem) { … }
if (data.view.type === "item") { … }
var url = data.view.url;

14 Komentar

  • Igniel

    Mantep. Ini yang saya cari

  • Muhammad Nur Fuad

    Mantap, belum sempat masuk ke situ, masih menggunakan class, makasih mas.

    • Taufik Nurrohman

      Memanfaatkan metode ini juga bagus supaya kita bisa menerapkan tag kondisional di dalam JavaScript tanpa perlu khawatir dengan efek yang ditimbulkan dari menambahkan atribut b:js='false' pada elemen <html> seperti ini.

      if (document.documentElement.classList.contains('is-item')) { … }
      • Muhammad Nur Fuad

        Iya benar seperti itu, yang pakai seperti tutorial mas di artikel ini ada kekurangannya memang, saya sudah test soalnya. Kalo untuk template pribadi no problem, akan tetapi jika untuk dijual atau sekedar berbagi gratis sangat tidak pas untuk diterapkan, karena banyak user termasuk saya dulu yang sering ngotak ngati disable js bawaan, akibatnya akan tidak bekerja dan user itu kebingungan sendiri. Padahal saya pikir ngaruhnya ngak banyak, masalah ndak bisa aktif widget archiver, lightbox dll, rugi hehe

  • Kandra Wilko

    Ini dari script async Rockpool yg diatas tag penutup body ya om?

  • ghonie xD

    nhahhh ketemu juga akhirnya

  • Igniel

    Tambahan mas. Cara ini hanya berlaku kalau widget bundle bawaan Blogger belum dihapus. Soalnya banyak pengguna yang memilih menghilangkan widget bawaan tersebut termasuk saya. Tadinya heran kenapa nggak bekerja. Setelah widget bawaan dikembalikan baru jalan.

  • lutfiyah

    Tidak dirender:
    <i rel="code">
    <script type='application/ld+json'>
    // <![CDATA[
    {
    "@context": "http://schema.org",
    "@type": "WebSite",
    "url": "<data:blog.url.canonical.https/>",
    }
    // ]]>
    </script>
    </i>
    Saya lepas ini:
    <i rel="code">
    // <![CDATA[
    // ]]>
    </i>
    <i rel="code">
    <script type='application/ld+json'>
    {
    "@context": "http://schema.org",
    "@type": "WebSite",
    "url": "<data:blog.url.canonical.https/>",
    }
    </script>
    </i>
    Dirender.
    Ketika saya menggunakan skrip yang harus menggunakan // <![CDATA[// ]]> (agar skrip saya tetap dirender dan tidak mengalami kerusakan atas perenderan), dan saya ingin mendapatkan data blogger tertentu di dalam skrip tersebut akhirnya gagal. Saya lepas // <![CDATA[// ]]> dan <data:blog.url.canonical.https/> tetap dirender, tetapi skrip saya tidak berfungsi. Saya pasang // <![CDATA[// ]]>, skrip saya berfungsi, tetapi <data:blog.url.canonical.https/> tidak dirender sebagai url yang kanonik. Ada solusi, kah?
    • Taufik Nurrohman

      Tidak bisa, itu sudah menjadi sikap standar markup XML:

      In an XML document or external parsed entity, a CDATA section is a section of element content that is marked for the parser to interpret purely as textual data, not as markup. —CDATA

      Hapus blok CDATA dan ubah semua karakter entitas HTML menjadi versi encode mereka:

      <script type='application/ld+json'>
      {
      &quot;@context&quot;: &quot;http://schema.org&quot;,
      &quot;@type&quot;: &quot;WebSite&quot;,
      &quot;url&quot;: &quot;<data:blog.url.canonical.https/>&quot;
      }
      </script>
      • lutfiyah

        Apakah harus mengkonversi juga ketika kita memanggil skrip dari luar? Atau jika kita memaksa maka Blogger tidak membacanya sebagai skrip? Untuk masalah ini, apakah ada tautan di DTE yang bisa membantu saya memahami masalah ini, agar supaya saya tidak banyak tanya di forum diskusi ini?

        • Taufik Nurrohman

          Syarat encode cuma untuk kode tersemat saja mbak. Ini berlaku juga pada CSS. Kode eksternal tidak ada sangkut-paut dengan mesin render Blogger.

  • KodeRian

    boleh dicoba ini buat pembelajaran B)






Semua kode HTML akan dihapus kecuali kode-kode HTML yang dituliskan sebagai contoh. Gunakan sintaks Markdown untuk memberi gaya pada komentar.


Batal