DisOpenWinS

らくだ

概要

usoDisOpenWinSuperS は、サイト側の都合によって新しいウィンドウが勝手に開くことを阻止する Opera 用のユーザスクリプトです。

機能

このスクリプトは標準で以下の機能を提供します。

  • window.open メソッドで新しいウィンドウが開く場合は、 top ウィンドウ内に iframe で疑似ポップアップとして開きます。
  • target 付きのリンクまたはフォームから新しいウィンドウが開く場合は、それを阻止して top ウィンドウで開きます。

また、オプションにより以下の挙動を選択出来ます。

  • window.open メソッドで新しいウィンドウが開く場合は、それを阻止して top ウィンドウで開きます。
  • target 付きのリンクまたはフォームから新しいウィンドウが開く場合は、 top ウィンドウ内に iframe で疑似ポップアップとして開きます。(ただし、 window.open の挙動が標準の場合に限る。)

使い方

必ず usoFrameToIframe と併用してください。併用しないと frameset を使ったページで正常に動作しません。また、旧バージョン(DisOpenWinS)は必ず削除してください。

オプション設定

ソースコード内の22行目と23行目を編集してください。値を true にすると疑似ポップアップが開き、 false にすると top ウィンドウで開きます。

従来(旧 usoDisOpenWinS)の挙動と同じにしたい場合はどちらも false にしてください。

注意点

生成される疑似ウィンドウのタイトルや、アドレスバーは JavaScript で生成されるもので、セキュアではありません。疑似ウィンドウから個人情報などを送信することはお勧めいたしません。

対象

Opera 10.63 で動作確認。旧バージョンでは動作確認していませんので、最新版の Opera を利用してください。

ダウンロード

/JavaScript/UserJS/DisOpenWin/

更新履歴

2006-03-27
window.open の返り値を document から window に変更した。
2006-03-28
DisOpenWinS 4.11 公開。
主に target 属性のチェックをリンクのクリック時に行うようにした。これにより、読み込み完了前のクリックでも新しいウィンドウは開かないようになった。
別サイトへのリンクは _top にしていたのを変更。これにより、自分のサイトのフレームに別サイトを表示してしまうのを防げなくなったが、やむを得ず。
2006-03-29
DisOpenWinS 4.20 公開。
seekTargetFrameLoop で、下位フレームの検索でアクセス権のないフレームにアクセスして止まっていたのを修正。
2006-10-26
DisOpenWinS 4.50 公開。
Opera 9 系のために、 try~catch 構文を導入。
2007-04-14
DisOpenWinS 4.60 公開。
window.open を書き換えるタイミングを、 document の load 時から、 document の click 時に変更。
2008年10月14日(火)
DisOpenWinS 4.70 公開。
フレームの検索に frames オブジェクトをしよう。 Opera 9.60 への対応。
2009-10-16
usoDisOpenWinS 5.00
Changed
event プロパティで、要求された window.open かどうかを判定するように変更。
2010年05月28日(金)
usoDisOpenWinS 6.00b1 公開。
Changed
ポップアップをインラインウィンドウで開くように変更。
2010年06月04日(金)
usoDisOpenWinS 6.00b2 公開。
Changed
インラインウィンドウの外観を変更。
Changed
インラインウィンドウの最大化時の挙動を変更。
Changed
インラインウィンドウのリサイズを8方向で出来るように変更。
2010-06-07
usoDisOpenWinS に戻す。 6.00 系は別のスクリプトとして公開。
2010-10-16
分離していた usoOpenWindowInline と統合し、 usoDisOpenWinSuperS 7.00 を公開。
Usertime : 0.06 / Systemtime : 0.02