トップ «前の日記(2006-03-29) 最新 次の日記(2006-04-03)» 編集

AOISAKURA 日記

2003|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|04|05|06|07|08|09|12|
2013|02|03|05|06|08|09|10|11|
2015|11|
2016|12|
2017|03|08|
2018|01|03|06|
2019|05|07|09|10|
2020|01|02|03|
2021|03|07|
2022|06|
2023|11|
2024|07|

pixiv / twitter / github

bluesky / misskey / pawoo

※発信する情報は、個人の見解・意見であり、所属する会社の見解・意見ではありません。


2006-03-31 またりしすぎ? [長年日記]

_ [javascript] GreasemonkeyでGoogle AdSenseを削る

Google AdSenseがウザいんですよ。っていうかクリックしたこと一度もないし、サイトと全然関係ない広告ばっかりで役にたたないし、等々で前々から目障りだなぁと思ってました。

どうにかできんもんかなぁと思って、この前nozomさんの書いたJavascriptで継続渡しを読んでそのままpythonへ写したとき、以前あったJavaScriptアレルギーがめっきり少なくなってたので(今でもありますが)、Greasemonkeyに挑戦してみることにした。

どのサイトでも効くかどうかは調べてないけど、とりあえずこんな感じ。

// ==UserScript==
// @name Google Adsense Remover
// @description removing remove google Adsense.
// ==/UserScript==
(function () {
    var ad_name = "google_ads_frame";
    var iframes = document.getElementsByTagName("iframe");
    var googleAd;
    for (var i = 0; i < iframes.length; i++) {
        googleAd = iframes[i];
        if (googleAd.getAttribute("name") == ad_name) {
            googleAd.parentNode.removeChild(googleAd);
        }
    }
})();

これ書く上で、始めてfirefoxのDOMインスペクタ使ったんですが、便利ですね!(今更

さ、次はamazonへのリンクURLからアマゾンアソシエイツのIDを削るのを書くぞー。

_ [javascript] GreasemonkeyでamazonアソシエイツのIDを削る

やってることは単なるURLの成形。あと、ASIN以降にredirect〜とか書かれている場合の対応をしないといけないけど、面倒になってきたんでそれはそのうち。

ちなみにURLのamazonアソシエイツID以降を削りたいのは、リンクが商品詳細へのリンクになっておらず、アソシエイツユーザのレコメンド一覧のページへのリンクになっているのが嫌だから。

// ==UserScript==
// @name Amazon Associate ID Remover
// @description removing Amazon Associate ID.
// ==/UserScript==
(function () {
    var delim = "/";
    var attrName = "href";
    var amazon = "www.amazon.co.jp";
    var ASIN = "ASIN";
    var links = document.getElementsByTagName("a");
    var url;
    var fixedUrl;
    for (var i = 0; i < links.length; i++) {
        element = links[i];
        if (element.hasAttribute(attrName)) {
            url = element.getAttribute(attrName);
            if (url.indexOf(amazon) != -1) {
                tokens = url.split(delim);
                fixedUrl = "http://" + amazon;
                for (var j = 3; j < tokens.length; j++) {
                    if (tokens[j] == ASIN) {
                        fixedUrl = fixedUrl + delim + ASIN + delim + tokens[j+1];
                        break;
                    } else {
                        fixedUrl = fixedUrl + delim + tokens[j];
                    }
                }
                element.setAttribute(attrName, fixedUrl);
            }
        }
    }
})();

_ [mozilla] Greasemonkey

DOMインスペクタとWeb Developerが無いと開発がままならないです、ままならないっていうか不可能。あと、javascript-mode.el必須。

まぁJavascriptといっても必要な知識はほとんどはDOMかなぁ。