2007年6月02日(土)

« 調子が悪い……ままで気付けば五月も終わってしまう | トップページ | それは全くその通りだが、お前が言うのはどうなんだ? »

フレーム内ページを別々に表示するブックマークレット

フレーム設定された(<FRAMESET>を使った)サイトの各フレーム内のページを、別窓で表示するブックマークレットを作ってみました。
ブックマークレットの登録方法等はこちら→【Web】ブックマークレットのブラウザ毎の登録方法
とっくに誰かが作っていると思いますが、探すのが面倒だったので……。
→framesではなくframe要素を参照するように修正(フレームのURLがメインフレームと同一ドメインでないと開けなかったため)。
→そう単純でもなかったみたいで。frame要素のsrc属性を参照してしまうと、既にそこから遷移していた場合に対処できない……ので、やっぱり両方いる、かも?場合によって使い分け。
→とりあえずframesで参照し、エラーになったら代わりにframe要素のsrcの方を開く、としてみました(1+2)。
ただ……framesの並び方とframe要素の並び方、同じって保証あるんでしたっけ?(苦笑)
中身は至極単純。
【タイプ1】
javascript:(function(){var d;for(var c=0;c<frames.length;c++){try{d=frames[c].document;}catch(e){continue;};window.open(d.location.href);}})();
【タイプ2】
javascript:(function(){var f=document.getElementsByTagName('frame');for(var c=0;c<f.length;c++)window.open(f[c].src);})();
【1+2】
javascript:(function(){var d=document;var f=d.getElementsByTagName('frame');for(var c=0;c<frames.length;c++){try{d=frames[c].document;}catch(e){window.open(f[c].src);continue;};window.open(d.location.href);}})();
javascript:(function(){var d=document;var f=d.getElementsByTagName('frame');for(var c=0;c<f.length;c++){try{d=frames[c].document;}catch(e){window.open(f[c].src);continue;};window.open(d.location.href);}})();
作成の動機は、フレームを使ったサイトで『ぴくとぽっぷ:ページ上から直リンクしている画像を順次表示するブックマークレット』を使おうとしたときに、いちいちメニュー用フレームのURLを調べるのが煩わしかったためです(笑)。
ちなみに、ブラウザの方でポップアップブロック設定されている場合にはブロックされたり警告が出てしまいますのでご了承ください。

この記事をニフティクリップβに追加 この記事をはてなブックマークに追加 2007/06/02(土) 01:03 | | 記事の編集(管理者用)

風柳へひとこと(web拍手) 

おもいつき」カテゴリの記事

パソコン・インターネット」カテゴリの記事

トラックバック

この記事のトラックバックURL:

記事との関連性が薄いものやSPAM等、管理人が不適切と見なしたトラックバックについては予告無く削除する場合が有ります。悪しからずご了承下さい。

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/161784/15284025

この記事へのトラックバック一覧です: フレーム内ページを別々に表示するブックマークレット:

コメント

コメントを書く