- 2011-11-10 (木) 0:57
- JavaScript
なんとなく思いついたので、はてなブックマークのコメントが、ブラウザ上でニコニコ動画的に表示されるChrome Extensionを作ってみました。
Chromeマーケットにのせるようなものでもないので、とりあえずzipを貼り付けておく。
→zipファイル
とりあえず、ソースコードを以下に示します。
なお、ニコニコ動画的に文字を流す処理には、R9ラボのNicoScreen.jsというJQueryプラグインを利用させて頂きました。
■manifest.json
{
"name": "HateCome",
"version": "1.0",
"description": "はてなブックマークのコメントを表示",
"browser_action": {
"default_icon": "icon.png", // アイコンの画像ファイル
"popup": "popup.html" // ポップアップ表示されるHTMLファイル
},
"content_scripts": [
{
"matches": ["http://*/*","https://*/*"],
"css": [],
"js": ["jquery-1.6.2.min.js","nicoscreen.js","hatecome.js"],
"all_frames": true,
"run_at":"document_end"
}
],
"permissions": [
"tabs",
"http://*/*", "https://*/*"
]
}
■hatecome.js
var addComments=function(list){
$("html").css("height","100%");
var body=$("body");
body.attr("id","nicoscreen");
var h=getPageHeight();
body.css("width","100%");
body.css("height",h+"px");
var sp=list.split(",");
var obj = {
"base":{
color:"black",
speed:"slow",
interval:"normal",
font_size:"48px",
loop:true
},
"comments":sp
};
nicoscreen.set(obj);
nicoscreen.start();
body.css("overflow-y","auto");
};
var getPageHeight=function(){
var yScroll;
if (window.innerHeight && window.scrollMaxY) {
yScroll = window.innerHeight + window.scrollMaxY;
} else if (document.body.scrollHeight > document.body.offsetHeight){
yScroll = document.body.scrollHeight;
} else {
yScroll = document.body.offsetHeight;
}
var windowHeight;
if (self.innerHeight) {
windowHeight = self.innerHeight;
} else if (document.documentElement && document.documentElement.clientHeight) {
windowHeight = document.documentElement.clientHeight;
} else if (document.body) {
windowHeight = document.body.clientHeight;
}
if(yScroll < windowHeight){
pageHeight = windowHeight;
} else {
pageHeight = yScroll;
}
return pageHeight;
};
■popup.html
<script type="text/javascript" src="jquery-1.6.2.min.js"></script>
<script>
chrome.tabs.getSelected(window.id, function (tab) {
$.ajax({
type: "GET",
url: "http://b.hatena.ne.jp/entry/jsonlite/",
data:{
"url":tab.url
},
dataType: "jsonp",
success: function(json) {
var comments=getComments(json.bookmarks);
chrome.tabs.executeScript(window.id,
{code:"addComments('"+comments+"')"});
window.close();
},
error : function(){}
});
});
var getComments=function(obj){
var n=obj.length;
var comments=[];
for(var i=0;i<n;i++){
var com=obj[i].comment;
if(com)comments.push(com);
}
return comments;
};
</script>
Related posts:
- Newer: Grails徹底入門を読み始めました。
- Older: 被ブクマ数を表示するWordPressプラグインの作成してみました。
Comments:0
Trackbacks:0
- Trackback URL for this entry
- http://termat.sakura.ne.jp/javascript/%e3%81%af%e3%81%a6%e3%81%aa%e3%83%96%e3%83%83%e3%82%af%e3%83%9e%e3%83%bc%e3%82%af%e3%81%ae%e3%82%b3%e3%83%a1%e3%83%b3%e3%83%88%e3%81%8c%e3%83%8b%e3%82%b3%e3%83%8b%e3%82%b3%e5%8b%95%e7%94%bb%e7%9a%84/trackback/?_wpnonce=1512a1c4a7
- Listed below are links to weblogs that reference
- はてなブックマークのコメントがニコニコ動画的に表示されるChrome Extensionを作ってみました。 from TM's Workspace
