ブラりザヌごずのwindow.openの動䜜の違い

1぀のサむトを開発するずきに、さたざたなブラりザヌでwindow.open関数の動䜜を確認する必芁がありたした。 結果を䜜成しおレむアりトするこずにしたした。誰がそれを必芁ずし、誰が远加するかがわかりたす。

テストには、FireFox 3ベヌタ3、Netscape Navigator 9、Internet Explorer 6、Opera 9、Konqueror 3.5を䜿甚したしたトピックの最埌に、Safariを個別にテストしたす。 同時に、FireFox 3は2぀の構成でテストされたしたデフォルトずTabMixPlus新しいりィンドりでポップアップを開く蚱可を持぀。 ワヌクスペヌスDebian䞊のKDE 3.5。

1.パラメヌタヌなしの呌び出し


最初に蚭蚈を䜿甚する
window.open 'http://www.w3.org/'、 'popup';

FireFox 3TMP
フルスクリヌンに最倧化されたフルサむズのりィンドりを開きたした芪のように。

Firefox 3
新しいタブを開きたした。

ナビゲヌタヌ9
フルスクリヌンに最倧化されたフルサむズのりィンドりを開きたした芪のように。

Opera 9
新しいタブを開きたした。

IE 6
フルスクリヌンに最倧化されたフルサむズのりィンドりを開きたした芪のように。

コンクレヌル
デフォルトのサむズでりィンドりを開きたした芪りィンドりはデスクトップ党䜓に拡倧されたした。

2.りィンドりの寞法


新しいりィンドりの寞法を蚭定したした。
window.open 'http://www.w3.org/'、 'popup'、 'width = 640、height = 480';

FireFox 3 TMPの有無にかかわらず
640x480ピクセルの衚瀺領域を持぀りィンドりを開きたした。 りィンドりには、ステヌタスバヌずアドレスバヌ非アクティブが衚瀺されたす。
ステヌタスバヌ、アドレスバヌ、タむトルバヌ、りィンドりの境界線により、りィンドり自䜓が指定されたサむズを超えおいたす。 りィンドりサむズは可倉です。

Navigaror 9ずKonqueror
640x480ピクセルの衚瀺領域を持぀りィンドりを開きたした。 りィンドりのタむトルず境界線により、りィンドり自䜓が指定されたサむズを超えおいたす。
りィンドりサむズは可倉です。

Opera 9
640x480ピクセルの衚瀺領域を持぀りィンドりを開きたした。 りィンドりのタむトルず境界線により、りィンドり自䜓が指定されたサむズを超えおいたす。
たた、銬には小さなパネルがあり、抌すずナビゲヌションパネルに展開したす。 これにより 、衚瀺領域が瞮小され 、りィンドりサむズは倉曎されたせん。 りィンドりのサむズは可倉ですマりスを䜿甚するナヌザヌを意味したす。

IE 6
640x480ピクセルの衚瀺領域を持぀りィンドりを開きたした。 りィンドりのタむトルず境界線により、りィンドり自䜓が指定されたサむズを超えおいたす。 りィンドりサむズはサむズ倉曎できたせん 。

* * *

今、私は明らかにモニタヌの解像床を超えるサむズにりィンドりを蚭定したす。
window.open 'http://www.w3.org/'、 'popup'、 'width = 2000、height = 1200';

FireFox 3、Navigator 9、Konqueror
りィンドりを開き、デスクトップ党䜓に拡倧したした。 FF3では、りィンドりにステヌタスバヌずアドレスバヌ非アクティブが衚瀺されたす。

Opera 9
新しいタブを開きたした。

IE 6
圌は、すべおのパネルタスク、メニュヌなどを含む画面党䜓をカバヌするりィンドりを開きたした。 りィンドりのタむトルは画面倖です。

結論
  1. すべおのブラりザは、指定されたサむズをビュヌポヌトのサむズず芋なしたす。
  2. 実際のりィンドりサむズは垞に指定されたものよりも倧きく、远加のパネルが存圚するため、ブラりザごずに違いが異なりたす。
  3. Internet Explorer 6では、りィンドりのサむズを手動で倉曎するこずはできたせん。 ずころで、これはwindow.openの正しい動䜜です。 この関数の呌び出しで指定されおいないすべおのパラメヌタヌは、 "no"サむズ倉曎可胜を含むず等しいず芋なされる必芁がありたす。 ナヌザヌの芳点からは必ずしも䟿利ではありたせんが。
  4. 開かれたりィンドりのサむズを監芖する必芁がありたす。 IE6の倧きなサむズでは、ナヌザヌのデスクトップ党䜓をカバヌできたす。

3.ポゞショニング


次の行は、りィンドりの座暙です。 これには2組のプロパティがありたす-IEの 巊ず䞊 、NNのscreenXずscreenYです。
あるいは、すべおのブラりザヌですべおのペアを詊したした。

window.open 'http://www.w3.org/'、 'popup'、 'width = 320、height = 240、left = 50、top = 50';

FireFox 3 、Navigator 9、IE6、Konqueror
4぀のブラりザはすべお、 巊ず䞊のプロパティを理解し、画面の巊䞊隅を基準にしおりィンドりを配眮したした。
この開始点にもかかわらず、top = 0のブラりザはいずれも、りィンドりでメニュヌバヌをブロックできたせんでした。

Opera 9
leftずtopのプロパティも理解したしたが、タブバヌに察しおりィンドりを配眮したしたカりントは䞋端から始たりたす。

window.open 'http://www.w3.org/'、 'popup'、 'width = 320、height = 240、screenX = 50、screenY = 50';

GeckoブラりザヌFFおよびNNのみがこれらのプロパティを理解し、OperaおよびIEはそれらを無芖したした。

画面のサむズを明らかに超える䜍眮を蚭定しようずした堎合の興味深い動䜜。

window.open 'http://www.w3.org/'、 'popup'、 'width = 320、height = 240、left = 2000、top = 1000';

FireFox 3、Navigator 9、Opera
デスクトップの右䞋隅にあるりィンドりを開きたしたOpera-そのワヌクスペヌス。 りィンドり党䜓が衚瀺されたす。 パネルはブロックされたせん。

コンクレヌル
圌は、デスクトップの巊䞊隅のりィンドりを芆いたした。 パネルはブロックされたせん。

IE6
チェックに倱敗したした。 IEは、プロセスを匷制的に削陀する前にりィンドりを開くのを停止したした。

結論
  1. りィンドりを配眮するには、 巊ず䞊のプロパティを䜿甚したす。 それらはすべおのbarausersによっお理解されたす。
  2. Operaは、画面に察しおりィンドりを配眮するのではなく、タブバヌに察しおりィンドりを配眮したす。
  3. りィンドりがデスクトップに収たらない状況を回避するこずを詊みるこずはよりよいです、なぜなら ブラりザの動䜜は異なりたす。

4.むンタヌフェヌス芁玠


最埌に確認したのは、むンタヌフェむス芁玠の管理特定のブラりザヌに固有の芁玠を陀くです。

各パラメヌタヌは、yesずnoの䞡方で詊行されたした。

Firefox 3

ナビゲヌタヌ9

Opera 9

IE 6

コンクレヌル

私が自分でやるべき結論。 私の意芋では、IEはwindow.open関数のより適切な実装を瀺しおいたす。

ブラりザを確認しおください



サファリ


ありがずうqnick 
Safari 3.0.45523.15、Mac OS 10.5.2
「ポップアップをブロックする」チェックボックスから、動䜜は絶察に倉わりたせん。 リンゎず䞀緒にリンクを抌すずりィンドりを新しいタブで匷制的に開く、新しいりィンドりが衚瀺されたす。

パラメヌタなしデフォルトサむズ、珟圚のりィンドりの右䞋に32ピクセル目で芋おを配眮ただし、珟圚のりィンドりの䞋の境界が画面の䞋の境界に非垞に近い堎合、新しいりィンドりはtop = 0になりたす、ツヌルバヌ、スクロヌルステヌタスバヌが利甚可胜、りィンドりは党方向に䌞びたす

寞法640x480ツヌルバヌ、スクロヌル、ステヌタスバヌが消え、りィンドりが䌞びなくなりたした。 䜍眮は珟圚のピクセルの右䞋の32ピクセルたたは䞊= 0、䞊蚘参照で、サむズは640x480 + 32ピクセルです。

非垞に倧きいサむズサむズは1440x900画面解像床に倉曎されたした。珟圚のりィンドりの䜍眮に関係なく、top = 0です。 他のすべおは以前ず同じです。

ポゞショニングカりントダりンは、巊䞊隅からメニュヌを匕いたもの、぀たり
Safariでの配眮

Netscapeスタむル同じ

デスクトップ以倖巊= 0、䞊= 0

堎所アドレスバヌずツヌルバヌが衚瀺され、スクロヌルがなく、寞法を倉曎できたせん。

メニュヌバヌ無芖、぀たり 640x480のサむズに䌌おいたす。

スクロヌルバヌ640x480のサむズず同じですが、垂盎スクロヌルが衚瀺されたす

ステヌタス640x480のサむズず同じですが、ステヌタスバヌが衚瀺されたす。

ツヌルバヌ堎所ず同じ。

卒業


もちろん、他のブラりザヌやプラットフォヌムでテストを远加する堎合は、もちろん、たずWindowsのIneternet Explorer 7でテストを远加しおください。

PS
たず第䞀に、FireFox3の革新を発芋したした。珟圚、デフォルトでは、JavaScriptはりィンドりのサむズを倉曎したり配眮したりできたせん。 これを解決するには、䟋倖のリストにサむトを远加する必芁がありたす。

JSロック

Source: https://habr.com/ru/post/J20916/


All Articles