Thursday, September 6, 2018

Mengakses Tag Kondisional Halaman Blogger di dalam JavaScript

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;

Labels: , , ,

14 Comments:

At Thursday, September 6, 2018 at 8:43:00 PM GMT+7, Blogger Igniel said...

Mantep. Ini yang saya cari

 
At Friday, September 7, 2018 at 1:41:00 PM GMT+7, Blogger illvart said...

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

 
At Tuesday, September 11, 2018 at 9:58:00 AM GMT+7, Blogger Taufik Nurrohman said...

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')) { … }

 
At Friday, September 14, 2018 at 5:50:00 PM GMT+7, Blogger Kandra Wilko said...

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

 
At Friday, September 14, 2018 at 6:09:00 PM GMT+7, Blogger Taufik Nurrohman said...

Rockpoll? Apa itu?

Saya dapat ini dari gist.

 
At Monday, September 17, 2018 at 7:25:00 AM GMT+7, Blogger Kandra Wilko said...

Skrip yg ada di template blogger versi 3 itu om

 
At Tuesday, September 18, 2018 at 8:47:00 PM GMT+7, Blogger illvart said...

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

 
At Sunday, November 18, 2018 at 8:19:00 PM GMT+7, Blogger ghonie xD said...

nhahhh ketemu juga akhirnya

 
At Monday, November 19, 2018 at 8:20:00 PM GMT+7, Blogger Igniel said...

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.

 
At Tuesday, December 18, 2018 at 2:12:00 PM GMT+7, Blogger lutfiyah said...

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?

 
At Tuesday, December 18, 2018 at 7:28:00 PM GMT+7, Blogger Taufik Nurrohman said...

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>

 
At Tuesday, December 18, 2018 at 10:24:00 PM GMT+7, Blogger lutfiyah said...

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?

 
At Sunday, December 23, 2018 at 1:53:00 AM GMT+7, Blogger Taufik Nurrohman said...

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

 
At Saturday, September 28, 2019 at 3:45:00 AM GMT+7, Blogger Rian said...

boleh dicoba ini buat pembelajaran B)

 

Post a Comment

<< Home