0

我尝试了以下从此处获得的简单弹出代码并稍作修改-

<!-- sample.html -->
<script type="text/javascript">
// Popup window code
function newPopup(url) {
    popupWindow = window.open(
        url,'popUpWindow','height=400,width=400,left=10,top=10,resizable=no,scrollbars=no,toolbar=no,menubar=no,location=no,directories=no,status=no')
}
</script>
<a href="JavaScript:newPopup('http://www.facebook.com/zuck');">Open a popup window</a>

当我运行它时,会按预期出现一个弹出窗口。但是滚动条和 URL 都在那里,我可以轻松地调整窗口大小,即使我已经resizable=no,scrollbars=no,location=no

为什么这些属性的更改没有反映在结果弹出窗口中?

奇怪的是,这是scrollbar属性正确反映Mozilla 10.0.4而不是反映Google Chrome 19.0.1084.56

但其他 2 个属性在任一浏览器上显示相同的行为。

4

1 回答 1

1

这里重要的是这些设置是对浏览器的建议。浏览器供应商可以选择让浏览器忽略它们。一些供应商(包括 Mozilla)让用户定义是否忽略某些设置(参见MDNwindow.open页面上的各种注释)。

您可以通过设置结果文档的样式来避免滚动条,如此处其他答案中所述(前提是SOP没有发挥作用),但是如果浏览器在您告诉它不要提供位置和调整大小时,真的没有别的了你可以做 - 使用弹出窗口。

您可能会考虑在当前窗口中使用绝对定位的元素,这几乎是弹出窗口的现代方式。但是,您加载 Facebook 的具体示例可能需要您使用iframe(并且可能会尝试转义它)。

于 2012-06-14T13:11:46.233 回答