=== act_on_page.js ===
function SendMemo()
{
chrome.extension.sendRequest({
add: $(“#new_memo”).value,
latest_comment: 1,
memo_on: “http://www.google.com/”
},function(resp){
//$(“.private_memo”)の削除
});
}
chrome.extension.sendRequest({},function(resp){
$(“#logo”).append($(“<div/>”).text(resp.counter));
$(“#logo”).append($(“<textarea col=10 row=10 id=new_memo/><button label=send onclick=SendMemo()/>”));
})
=== background.html ===
<html>
<head>
<script>
chrome.extension.onRequest.addListener(function(req,sender,sendResponse){
if( req[“add”]
if( !localStorage[“counter”] )
{
localStorage[“counter”] = 0;
}
localStorage[“counter”] = Number(localStorage[“counter”]) + 1;
sendResponse({counter:localStorage[“counter”]});
});
</script>
</head>
</html>
=== manifest.json ===
{
“name”: “My First Extension”,
“version”: “1.0”,
“description”: “The first extension that I made.”,
“browser_action”: {
“default_icon”: “icon.png”,
“default_title”: “foo”,
“popup”: “popup.html”
},
“background_page”: “background.html”,
“permissions”: [
“http://www.google.co.jp/”,
“bookmarks”
],
“content_scripts”: [{
“matches”: [
“http://www.google.com/*”,
“http://www.google.co.jp/*”
],
“js”: [“jquery-1.4.3.js”,”act_on_page.js”],
“css”: []
}]
}
8:09 am • 13 November 2010
$(“input[name]”).change(function(e){
var target = $(e.target);
console.log( “StvByName("”+ target.attr(“name”) + “",0,"” + target.attr(“value”) + “");” );
});
10:16 am • 11 November 2010
“
受信側は extension.onRequest
を使ってメッセージの受信イベントを用意する必要がある。これはコンテント・スクリプトでも拡張機能でも同様のコードになる。リクエストは受信側が
sendResponse を呼び出すまで開いたままになるので、応答の必要が無い場合でも空の sendResponse
を送ることでリクエストを終了させてやることが推奨される。
chrome.extension.onRequest.addListener(
function(request, sender, sendResponse) {
console.log(sender.tab ?
"from a content script:" + sender.tab.url :
"from the extension");
if (request.greeting == "hello")
sendResponse({farewell: "goodbye"});
else
sendResponse({}); // snub them.
}
);
”
— メッセージ | Chrome Extensions API リファレンス
11:16 am • 8 November 2010
“
メッセージの送信は、次のようになる。
/* content script */
chrome.extension.sendRequest({greeting: "hello"}, function(response) {
console.log(response.farewell);
});
”
— メッセージ | Chrome Extensions API リファレンス
11:16 am • 8 November 2010
“ 1056: name = name.replace(/-([a-z])/ig, function(all, letter){
1057: return letter.toUpperCase();
1058: });
これは、”abc-def” を “abcDef” に置換する、所謂駱駝文字列作成コードです。
置換対象はハイフンに続く一文字のアルファベットであり、letter は部分文字列である [a-z]
(任意の小文字アルファベット)を指しますから、letter.toUpperCase() によって “-”
とその直後にある小文字の任意のアルファベット 1 文字、合計 2 文字が 1 文字の大文字に変わります。
”
— anything from here jQueryに学ぶ Javascript の基礎(8) String.replace() メソッド──jQuery解読(46)
11:10 am • 8 November 2010
“function replacer(str, p1, p2, offset, s){
return str + ” - ” + p1 + ” , ” + p2;
}
“XXzzzz”.replace(/(X*)(z*)/, replacer); // returns:XXzzzz - XX , zzzz”
— anything from here jQueryに学ぶ Javascript の基礎(8) String.replace() メソッド──jQuery解読(46)
11:10 am • 8 November 2010
“function replacer(str, p1, p2, offset, s){
return str + ” - ” + p1 + ” , ” + p2;
}
“XXzzzz”.replace(/(X*)(z*)/, replacer); // returns:XXzzzz - XX , zzzz”
— anything from here jQueryに学ぶ Javascript の基礎(8) String.replace() メソッド──jQuery解読(46)
11:08 am • 8 November 2010
“
A jQuery outerHTML one-liner
$(...).clone().wrapAll("<div/>").parent().html();
”
— A jQuery outerHTML one-liner - gugod’s blog
11:08 am • 8 November 2010
“
jQuery で、innerHTML じゃなくて outerHTML を実現する方法があった。
jQuery.fn.outerHTML = function(s) {
return (s)
? this.before(s).remove()
: jQuery("<p>").append(this.eq(0).clone()).html();
}
”
— jQuery で outerHTML() を実現する - kなんとかの日記
10:59 am • 8 November 2010