メタブ表示
by
lieutar
2016-08-15 [2016/08/15 20:22:44]
メタブ表示
@@ -1,5 +1,5 @@
/*
- * @title はてブでメタブ表示(レイアウト汚くなる)
+ * @titleブクマカのメタブ表示
* @description my bookmarklet
* @include http://b.hatena.ne.jp/entry/*
* @license MIT License
@@ -92,6 +92,11 @@
/*
* START
*/
+
+ if((function(pn){
+ if(pn.match(/^\/entry\/\d+\/comment\//)) return true;
+ return false;
+ })(String(location.pathname))) return;
if( typeof HBBlogParts == 'undefined' ){
/*
* @titleブクマカのメタブ表示
* @description my bookmarklet
* @include http://b.hatena.ne.jp/entry/*
* @license MIT License
* @require
*/
(function(){
/*
* CONSTANTS
*/
var DEBUG = true;
var HBBP_URL = "http://b.hatena.ne.jp/js/bookmark_blogparts.js";
//////////////////////////////
var p = function() {
if ( !DEBUG ) return;
console.log.apply(console, arguments);
};
var forEach = function(a,f){
if(!a) return;
for (var i=0,l=a.length;i<l;i++){
if(f(a[i]) === false) break;
}
};
//////////////////////////////
var targets = {};
var insert = function(container, url){
var h = HBBlogParts;
var sel = 'a[href="'+targets[url]+'"]';
forEach( document.querySelectorAll('ul.bookmark-list'), function(li){
var target = li.querySelector(sel);
if(!target) return;
var parent = target.parentNode;
parent.appendChild(container);
});};
var catchJsonMetab = function(entry){
var h = HBBlogParts;
if ( !entry ){
//p('No Bookmarks');
}else{
var container = new h.BookmarkContainer(entry);
if( h.isPermalinkPage() ) {
container.commentLimit = h.permalinkCommentLimit;
} else {
container.commentLimit = h.listPageCommentLimit;
}
var url = entry.url;
insert(container.toHTML(h.Design),url);
h.setStyles();
h.shownPermalinks[url] = 1;
}
h.catchCount++;
if( h.catchCount >= h.Entries.length ) h.showEmptyEntries();
};
var showBookmarkComment = function(uri){
var h = HBBlogParts;
var apiEndPoint = h.API_DOMAIN + '/entry/jsonlite/?';
var request = apiEndPoint + 'url=' + encodeURIComponent(uri) +
'&callback=HBBlogParts.CatchJsonMetab';
var scriptTag = Ten.Element('script',{ src: request, type: 'text/javascript'});
document.body.appendChild(scriptTag);
};
var showBlogPart = function(n){
var h = HBBlogParts;
var uri = n.href;
if(targets[uri]) return;
targets[uri] = n.getAttribute('href');
showBookmarkComment(uri);
};
var main = function(){
var h = HBBlogParts;
h.debug = DEBUG;
h.CatchJsonMetab = catchJsonMetab;
var entries = [];
forEach(document.querySelectorAll('a.profile-icon'), showBlogPart);};
/*
* START
*/
if((function(pn){
if(pn.match(/^\/entry\/\d+\/comment\//)) return true;
return false;
})(String(location.pathname))) return;
if( typeof HBBlogParts == 'undefined' ){
var mainjs = document.createElement('script');
mainjs.src = HBBP_URL;
document.querySelector('head').appendChild(mainjs);}
(function(){
if(typeof HBBlogParts == 'undefined'){
setTimeout(arguments.callee,20);}else{main();}})();
})();
// Local Variables:
// mode: hatena-let
// End:
- Permalink
- このページへの個別リンクです。
- RAW
- 書かれたコードへの直接のリンクです。
- Packed
- 文字列が圧縮された書かれたコードへのリンクです。
- Userscript
- Greasemonkey 等で利用する場合の .user.js へのリンクです。
- Loader
- @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
- Metadata
- コード中にコメントで @xxx と書かれたメタデータの JSON です。