Mecha versi 2.6.4 sudah dirilis!

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)

Komentar telah ditutup.