3

このコードを使用して、画面の中央にポップアップを開きます

  function popupwindow(url, title, w, h) {
      wLeft = window.screenLeft ? window.screenLeft : window.screenX;
      wTop = window.screenTop ? window.screenTop : window.screenY;

      var left = wLeft + (window.innerWidth / 2) - (w / 2);
      var top = wTop + (window.innerHeight / 2) - (h / 2);
      return window.open(url, title, 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width=' + w + ', height=' + h + ', top=' + top + ', left=' + left + ', screenX=' + left + ', screenY=' + top);
  }

Firefox、IE、Safari ではすべて問題なく動作しますが、Chrome ではポップアップがランダムに表示されます。これをChromeでも機能させるにはどうすればよいですか?

4

2 に答える 2

1

以下のコードが正常に動作していることがわかります。

<script>
    function popupCenter(url, title, w, h) {
      var left = (screen.width/2)-(w/2);
      var top = (screen.height/2)-(h/2);
      return window.open(url, title, 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width='+w+', height='+h+', top='+top+', left='+left);
    }
</script>

リンクのサンプル:

<a onclick="popupCenter('http://www.nigraphic.com', 'myPop1',450,450);" href="javascript:void(0);">CLICK TO OPEN POPUP</a>

詳細はこちら

于 2015-02-26T17:44:48.413 に答える
0

これは、Chrome でズーム レベルが 100% ではないために発生しています。ズーム レベルがオフの場合、座標の取得方法が変わります。他のブラウザ、少なくともIEでは、ウィンドウが開いている場所でズーム倍率は変わりません。ズームを確認して修正すると、以前にChromeで提供した特定の機能を使用して問題が修正されます。

また、ブラウザーのズーム レベルの確認に関する良い記事は次のとおりです: https://stackoverflow.com/a/5078596/2762516

于 2013-10-04T15:30:06.547 に答える