mixiのサイドバーを削って横幅を狭めるブックマークレット

ものっそい今更という気がしますが。^^;
mixi自体に付いてる機能で2列表示、3列表示の切り替えは出来ますしねえ……。
でもまあ、車輪の再発明はKAYのオハコなので、ネタ的には全然おっけー。(マジかよ)
ブックマークレットの練習という感じで作ってみたんですが、得るものは非常に少なかったですね。やってる事はフツーにスクリプト書くのと変わんないので、当たり前といえば当たり前ですが。^^;
大仰な名前まで付いてますが、どっちかっつーとこれ、小技、小ネタの範疇ですよねえ。スクリプトを直接ブックマークするという発想の面白さと、導入の容易さが受けたって感じでしょうか。まあいいや。
ではでは。
とりあえず↓これをブックマークに登録して下さい。
mixiのサイドバーを削って横幅を狭めるやつ
あとはこのブックマークレットを実行するたびに、右側のサイドバーの表示非表示が切り替わります。
一応、IE6、IE7、Opera9.10、Firefox2.0.0.3で動作確認出来てます。Safariは知らん。かくにんだれかたのむ。
ちなみに、上記のは起動用のスクリプトで、単にhttp://kay.chisyamori.com/storage/mixi_stretch.jsを読みに行って実行してるだけです。
これを直接読みに行くのが気持ち悪いという人は、ファイルを引っこ抜いて別の場所に置いてから、URI部分だけ書き換えて利用して下さい。
あと、mixi_stretch.jsの中身はこんな感じ。
//mixiの横幅を800pxに収めるブックマークレット
//改変・再配布はご自由に
//2007(c) KAY
(function() {
var table = document.getElementsByTagName("table");
var n = table.length;
for(var i = 0; i < n; i++) {
if(table[i].width == "950") {
table[i].width = "800";
} else if(table[i].width == "800") {
table[i].width = "950";
}
}
var div = document.getElementsByTagName("div");
var n = div.length;
for(var i = 0; i < n; i++) {
var w = parseInt(div[i].style.width);
if(w == 950) {
div[i].style.width = "800px";
} else if(w == 800) {
div[i].style.width = "950px";
}
}
var td = document.getElementsByTagName("td");
var n = td.length;
for(var i = 0; i < n; i++) {
if(td[i].getAttribute("background") && td[i].getAttribute("background").indexOf("title3-.gif") != -1) {
td[i].style.width = (td[i].style.width == "150px")? "0": "150px";
var tmp = td[i].getElementsByTagName("img")[0];
tmp.style.display = (tmp.style.display == "none")? "inline": "none";
}
}
var img = document.getElementsByTagName("img");
var n = img.length;
for(var i = 0; i < n; i++) {
if(img[i].src.indexOf("/smenu") != -1) {
img[i].style.display = (img[i].style.display == "none")? "inline": "none";
}
}
var con = document.getElementById("container");
if(con) {
con.style.display = (con.style.display == "none")? "block": "none";
} else {
con = document.createElement("div");
con.id = "container";
con.style.display = "none";
var script = document.getElementsByTagName("script");
var n = script.length;
for(var i = 0; i < n; i++) {
var par = script[i].parentNode;
if(par.tagName == "TD" && par.getAttribute("width") == "224") {
while(par.childNodes.length) {
con.appendChild(par.childNodes[0]);
}
par.appendChild(con);
break;
}
}
}
if(!document.getElementById("member_news_box")) { return; }
var con = document.getElementById("container2");
if(con) {
con.style.display = (con.style.display == "none")? "block": "none";
} else {
con = document.createElement("div");
con.id = "container2";
con.style.display = "none";
var bar = document.getElementById("member_news_box").parentNode;
while(bar.childNodes.length) {
con.appendChild(bar.childNodes[0]);
}
bar.appendChild(con);
}
})();
今回、FirefoxのDOMインスペクタを使ってHTMLソースの解析してたんですが……もうほんと、どうしようかと思いましたね。素直なマークアップしといてくれれば、もうちょい縮められた気もするんですが……。
なんで上部メニューが1個の画像で出来てんのよ。んなとこでわざわざクリッカブルマップなんか使うなよ。リストで組んでCSSで整形しろよ。まあ、突っ込みどころ多すぎるからこれ以上は言わないけどさ……。




トラックバック by ぱふぅ家のホームページ — 2009/06/27(土) @ 12:49:48
PHPの演算誤差
PHPに限った問題ではないが、コンピュータ・プログラム演算誤差が発生するケースがある。ここでは演算誤差の具体事例と対策を考えていく。≫デザインを一新しました。プログラムへの...