web-dev-qa-db-ja.com

Googleでスクロールバーなしでwindow.openを実行する方法Chrome

次のコードは、Firefoxでスクロールバーのない新しいウィンドウ、IE、Opera)を開きます。

    var options = {
        height: 300, // sets the height in pixels of the window.
        width: 300, // sets the width in pixels of the window.
        toolbar: 0, // determines whether a toolbar (includes the forward and back buttons) is displayed {1 (YES) or 0 (NO)}.
        scrollbars: 0, // determines whether scrollbars appear on the window {1 (YES) or 0 (NO)}.
        status: 0, // whether a status line appears at the bottom of the window {1 (YES) or 0 (NO)}.
        resizable: 1, // whether the window can be resized {1 (YES) or 0 (NO)}. Can also be overloaded using resizable.
        left: 0, // left position when the window appears.
        top: 0, // top position when the window appears.
        center: 0, // should we center the window? {1 (YES) or 0 (NO)}. overrides top and left
        createnew: 0, // should we create a new window for each occurance {1 (YES) or 0 (NO)}.
        location: 0, // determines whether the address bar is displayed {1 (YES) or 0 (NO)}.
        menubar: 0 // determines whether the menu bar is displayed {1 (YES) or 0 (NO)}.
    };

    var parameters = "location=" + options.location +
                     ",menubar=" + options.menubar +
                     ",height=" + options.height +
                     ",width=" + options.width +
                     ",toolbar=" + options.toolbar +
                     ",scrollbars=" + options.scrollbars +
                     ",status=" + options.status +
                     ",resizable=" + options.resizable +
                     ",left=" + options.left +
                     ",screenX=" + options.left +
                     ",top=" + options.top +
                     ",screenY=" + options.top;

    // target url
    var target = 'some url'  

    popup = window.open(target, 'popup', parameters);

Google Chromeでは、新しいウィンドウにはまだスクロールバーがあります。それを機能させるためのアイデアはありますか?

14
Pawel Furmaniak

このスタイルでうまくいくはずです。開いているウィンドウドキュメントに追加してください。


body{ overflow-x:hidden;overflow-y:hidden; }
22
DoctorLouie

スクロールバーを削除しないでください。フォント設定がめちゃくちゃ大きくて、スクロールバー以外のスクロール方法がわからない場合、ポップアップのコンテンツを実際に表示することはできません。 overflow: hiddenについても同じことが言えます。ページのコンテンツが正確なサイズに収まるかどうかを確認する方法がないため、これを行わないでください。ページがオーバーフローしていない場合、デフォルトではスクロールバーは表示されないため、問題は、ポップアップがロードしているページに対して小さすぎる可能性があります。また、ほとんどの人はポップアップを嫌うので、ユーザーの注意を引くために、小さいながらも鮮やかな色のボックスなど、邪魔にならないアプローチを試してみることをお勧めします。

4
Eli Grey

Google Chromeユーザーにとってはさらに一歩前進します多くのポップアップを自動的にキャプチャブラウザの右下隅にある通知領域にそれらを抑制し、ユーザーに手動で起動するかどうか。さらに、Googleは定期的にブラウザに更新をプッシュし、ポップアップがChromeでキャプチャされない場合は、将来的になる可能性があります。

また、最近のシステムの多くのツールはポップアップを防止またはブロックするため、多くのレベルでオッズはポップアップに反しますです。

勧告

ページDOMを使用してポップアップウィンドウをモックする(たとえば、ポップアップウィンドウのようにスタイル設定されたDIVを使用する)をお勧めします。多くのサイトは、ポップアップブロッカーを乗り越えるためにこのように動いています。

インターネット上には多くの例があります。たとえば JavaScriptを使用してポップアップを作成するjQuery APIを使用してポップアップを作成する jQueryはJavaScriptの上にあるJavaScriptレイヤーであり、いくつかの暗黙的なクロスブラウザー互換性機能を提供します。

CSSを使用して、モックされたポップアップ内をスクロールできるようになります

div {
width:150px;
height:150px;
overflow:scroll;
/* etc... */
}

またはそれを抑制するためにoverflow:hidden;

1
John K

スクロールバーが必要なため、スクロールバーがあります。コンテンツが大きすぎて、スクロールバーなしで表示できない場合があります。 style = "overflow:hidden"を使用して要素(たとえばdiv)でラップすることを検討してください。

0
Fabien Ménager