如何在Google Chrome中没有滚动条的情况下执行window.open

时间:2010-01-03 13:27:36

标签: javascript google-chrome popup

以下代码在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);

谷歌浏览器中,新窗口仍然有滚动条。 有什么想法让它发挥作用吗?

4 个答案:

答案 0 :(得分:21)

此样式应该可以解决问题,将其添加到打开的窗口文档中:


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

答案 1 :(得分:4)

您不应删除滚动条。如果我的字体设置非常大,并且不知道滚动条以外滚动的其他方法,我将无法实际查看弹出窗口的内容。同样适用于overflow: hidden。只是不要这样做,因为没有办法确保页面的内容符合确切的大小。如果页面没有溢出,则默认情况下不显示滚动条,因此您的问题很可能是您的弹出窗口太小而无法加载其中的页面。此外,大多数人讨厌弹出窗口,所以你可能想尝试一种不那么干扰的方法,比如小巧但色彩鲜艳的盒子,以吸引用户的注意力。

答案 2 :(得分:1)

谷歌浏览器通过自动捕获许多弹出窗口并将其抑制到浏览器右下角的通知区域,为用户带来额外的好处,为用户提供服务手动启动它们的选项。此外,Google会定期向浏览器推送更新,如果您的弹出窗口未被Chrome捕获,则可能是将来。

现在系统上的许多工具都会阻止或阻止弹出窗口,因此很多级别的几率与你的弹出窗口相比

建议

建议使用页面DOM 模拟弹出窗口(例如,使用DIV样式看起来像弹出窗口)。许多网站正在以这种方式通过弹出窗口拦截器。

互联网上有很多例子。例如using JavaScript to create a Popupusing jQuery API to create a popup jQuery是一个基于JavaScript的JavaScript层,它将为您提供一些隐含的跨浏览器兼容性功能。

您可以使用CSS

在模拟弹出窗口内滚动
div {
width:150px;
height:150px;
overflow:scroll;
/* etc... */
}

或取消overflow:hidden;

答案 3 :(得分:0)

它有滚动条,因为它需要滚动条。您的内容可能太大,无法在没有滚动条的情况下显示。考虑将它包装在一个元素(例如div)中,并使用style =“overflow:hidden”。