Google検索の結果にFacebookのシェア数を表示するブックマークレット
by
laiso
2020-03-22 [2020/03/22 17:55:18]
同上
-
/*
* @title Google検索の結果にFacebookのシェア数を表示するブックマークレット
* @description 同上
* @include https://www.google.*
* @license MIT License
*/
(function(global){
var document = global.document;
var nodes = Array.from(document.querySelectorAll('.r > a:first-child'));
var ids = nodes.map(n=>n.href).join(',');
var script = document.createElement('SCRIPT');
script.src = 'https://graph.facebook.com/?fields=og_object{engagement}&ids='+ids+'&callback=callback';
document.body.insertBefore(script, null);
global.callback = function(data){
if (data.error) {
alert('[FB]'+data.error.message);
return;
}
var counter = (info) => {
var STYLE = "padding: 0 0.5em;\nmargin: 0 0.5em;\ncolor: #fff;\ntext-shadow: 0 1px 0 white;\nbackground-color: #4e69a2;\nfont-weight: bold;\ntext-decoration-line: none;";
var counter = document.createElement('A');
counter.setAttribute('style', STYLE);
counter.innerText = info.engagement.count || 'X';
if (info) {
counter.href = info.id;
} else {
counter.style.setProperty('background-color', '#FF1000');
}
return counter;
};
for (var i in nodes) {
var a = nodes[i];
var url = a.href;
var og_object = data[url] ? data[url].og_object : null;
if (!og_object) continue;
var c = counter(og_object);
var parentNode = a.parentNode;
parentNode.style.setProperty('overflow', 'visible');
parentNode.appendChild(c);
}
};
})(window);
-
- Permalink
- このページへの個別リンクです。
- RAW
- 書かれたコードへの直接のリンクです。
- Packed
- 文字列が圧縮された書かれたコードへのリンクです。
- Userscript
- Greasemonkey 等で利用する場合の .user.js へのリンクです。
- Loader
- @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
- Metadata
- コード中にコメントで @xxx と書かれたメタデータの JSON です。