Sleipnir2 同じhostのタブをまとめてみる その2
2008年 08月 21日
。location→[ピリオド]location
pnir = new ActiveXObject("Sleipnir.API");
id = pnir.GetDocumentID(pnir.ActiveIndex);
document = pnir.GetDocumentObject(id);
if(document == null){
pnir.MessageBox("Document オブジェクトを作成できません");
}
else{
var tabsL = pnir.GetCount;
var tIDs = new Array(tabsL);
//順番を指定したいアドレス分だけ配列を宣言してと
var tMattaries = new Array();
var tURLs = new Array();
var tGoogles = new Array();
for(i = 0;i < tabsL;i ++){
var tabsID = pnir.GetDocumentID(i);
var tabsW = pnir.GetWindowObject(tabsID);
var tabsWURI = tabsW。location.href;
tIDs[i] = tabsID;
if(tabsWURI.match(/http:¥/¥/www.google.co/)){
tGoogles[i] = tabsWURI;
}else if(tabsWURI.match(/http:¥/¥/mattaries.exblog.jp¥//)){
tMattaries[i] = tabsWURI;
}else{
tURLs[i] = tabsWURI;
}
}
//concat で配列をくっつけられるので tMUG に入れてと。
var tMUG = (tMattaries.concat(tURLs)).concat(tGoogles);
//格納は出来ているものの、実際の個数よりも多い状態なので
//(undefinedがそのまま入っている)
var n = 0;
for(i = 0;i < tMUG.length;i ++){
if(tMUG[i]){
pnir.Navigate(tIDs[n],tMUG[i]);
n++;
}
}
document = null;
}
pnir = null;
---時間経過---
push は Internet Explorer 系では使えないみたいだから順番に入れていってたんだけどタブのインデックスの値でやっていってたら余分な部分(undefined の配列)が出てきてしまうので、前のやつではそれを「値が真ならば」で分岐させて振り落としてたんだけど、さっきやったら 配列の宣言の後の for 以降の部分は、こういう書き方でいけた‥‥。
var tabsID = pnir.GetDocumentID(i);
var tabsW = pnir.GetWindowObject(tabsID);
var tabsWURI = tabsW。location.href;
tIDs[i] = tabsID;
if(tabsWURI.match(/http:¥/¥/www.google.co/)){
//この書き方だとちゃんと個数分格納できる
tGoogles[tGoogles.length] = tabsWURI;
}else if(tabsWURI.match(/http:¥/¥/mattaries.exblog.jp¥//)){
tMattaries[tMattaries.length] = tabsWURI;
}else{
tURLs[tURLs.length] = tabsWURI;
}
}
tMUG = (tMattaries.concat(tURLs)).concat(tGoogles);
for(i = 0;i < tMUG.length;i ++){
pnir.Navigate(tIDs[i],tMUG[i]);
}
どちらにしても、1個ずつ処理して全部読み込み直しをするので、ちょっと時間がかかる‥‥(* ̄▽ ̄;A 何かもっと速く出来るような書き方あるのかな。分かんないや。[メニュー]>[スクリプト] から選択するのより、[Sleipnir2のインストールディレクトリ]\plugins\scripts にファイル名の頭文字を大文字にして右クリックメニューにした方が速いみたいだから、ちょっとそれでやってみよっと。
ん~それほど変わんなかったかも(* ̄▽ ̄;A 最初にやってみたのは少し右クリックメニューにした方が速かったような気がしたんだけど‥‥気のせいかな。
Firefox だとどうすればいいんだろう? 調べてみようっと。