2012-05-16 13 views
7

まずは...私はユーザーをポップアップなどに晒す意図がありません。私は、すでにナビゲートしているWebページのブラウザウィンドウのサイズを変更できないようにしたいとします(つまり、window.open()を使用したくない、または使用したくないという意味です)。私はこれをかなり長い間研究しており、簡単な答えを見つけることができないようです。ブラウザウィンドウのサイズ変更を無効にする

私はの線に沿って何かを軌道に乗っていたように私は感じた:無駄に...

$(window).resize(function() { 
    var wWidth = window.width, 
    wHeight = window.height; 
    window.resizeBy(wWidth, wHeight); 
}); 

。私はこれが可能であると想像しなければならない。それは...ですか?もしそうなら、私は間違いなく助けに感謝します。

ありがとうございました

+5

私はなぜそれを聞かなければなりませんか?ブラウザウィンドウは制限されていません。エンドユーザが別の画面に移動してサイズを変更できない場合、エンドユーザに潜在的な問題が発生する可能性があります。例は異なる解像度の2つの画面です。 –

+4

コアOSレベルの機能(ウィンドウのサイズ変更を防ぐなど)の動作を決して変更しないでください。 *いつまでも*。 –

+1

@JohnHartsock - 彼はブラウザの拡張機能やプラグインを作っているのでしょうか? –

答えて

18

最初に確定サイズを決定できます。

var size = [window.width,window.height]; //public variable 

次に、この操作を行います。

$(window).resize(function(){ 
    window.resizeTo(size[0],size[1]); 
}); 

をデモ:http://jsfiddle.net/DerekL/xeway917/


Q:これはリサイズの無限ループが発生しないのだろうか? - user1147171

良い質問。これにより、サイズ変更の無限ループは発生しません。 W3C specificationは、resizeイベントは、ドキュメントビューのサイズを変更したときにのみ送出する必要があることを示しています。 resizeTo関数が2回目に実行しようとすると、ウィンドウは設定したのとまったく同じ次元になり、次元が変更されていないためブラウザはresizeイベントを発生させません。

+0

ありがとう@Derek。これは間違いなく、私が思っていたもののラインに沿っています。私はあなたの提案を差し込みました、そして、私はまだ成功していません。しかし、あなたが書いたものを見るだけで、これはうまくいくはずです。これは、他のどこかで何か間違ったことをしているに違いないことを確認しているので、私にとってはまだ役立ちます...私はこれを「答えた」とマークするつもりです。どうも。 –

+0

@tchnchn - 拡張機能のポップアップで使用しているので動作するはずです。 ;) –

+1

これは非常に面倒な "機能"です。それが機能するならば(そして、OPが与えられても)、ユーザはウィンドウが最初に開くどんなサイズにもロックされます。これは役に立つかもしれませんが、そうではないかもしれません。 – RobG

0

私は(Chromeの拡張機能によって開かれたパネル用)は本日、これを行うために必要なが、私は、ユーザーがウィンドウの高さを変更できるようにするために必要な、しかし、彼らはデレクのソリューション@ウィンドウ幅

を変更できないが、ほとんど私を得ました高さの変更を可能にするためにそれを微調整しなければならなかったので、無限のリサイズループが可能でしたので、私もそれを防ぐ必要がありました。これはDereckの答えの私のバージョンで、私のためにはうまくいきます。

var couponWindow = { 
    width: $(window).width(), 
    height: $(window).height(), 
    resizing: false 
}; 
var $w=$(window); 
$w.resize(function() { 
    if ($w.width() != couponWindow.width && !couponWindow.resizing) { 
    couponWindow.resizing = true; 
    window.resizeTo(couponWindow.width, $w.height()); 
    } 
    couponWindow.resizing = false; 
}); 
関連する問題