在新窗口中显示页面的一部分

时间:2011-04-27 14:48:20

标签: javascript .net new-window

我想打开下图中的页面,但只显示新窗口中的绿色部分。将菜单和标题隐藏到用户。

enter image description here

function openNewWindow() {
        var pr = window.open("Page.aspx", "page", "width=700, height=400");  
        pr.onload() = function() {  
            pr.document.getElementById("header").style.display = 'none';  
        }
    }

是否可以在新窗口中为页面设置某种偏移量?像left:-40pxtop:-20px或类似的东西?我知道topleft定位新窗口而不是内容,但是我可以做些什么来改变实际内容的位置?

是否存在具有相同结果的解决方案或其他解决方案?

修改
当我点击<a href="javascript:openNewWindow(); return false;">Click</a>我希望Page.aspx(上图)在新窗口中打开,但没有显示菜单和标题。

3 个答案:

答案 0 :(得分:1)

  1. 加载整个页面,但使用Javascript隐藏标题和菜单:

    newwindow.onload = function() {
        newwindow.document.getElemementById('header').style.display = 'none';
        newwindow.document.getElemementById('menu').style.display = 'none';
    }
    

    (或使用JQuery的.hide()方法)

  2. 加载整个页面,但添加一个额外的样式表,将标题和菜单设置为隐藏:

    #header, #menu {display:none !important;}
    
  3. 当您提供页面时,请使用不包含标题和菜单等的其他模板。所有条件相同,这可能是最佳选择,但我无法提供任何建议在此不知道整个加载更多关于您的代码。

  4. (以上所有假设您在我指定的标题和菜单中都有ID;根据需要进行更改)

答案 1 :(得分:1)

如何打开显示加载页面的iframe的页面 - 然后您可以将iframe宽度/高度设置为您需要的内容以及是否提供滚动? 像这样的东西:

<html>
<!-- this is page2.aspx -->
<body>
<!-- header -->
<!-- menu -->
<iframe id="abc"...></iframe>
<script type="text/javascript">
 var page = ... //retrieve the value of the parameter "url" passed to us (you can find how to do this by googling)
 document.getElementById( "abc" ).src = page; //set the iframe url to the parameter passed
</script>
</body>
</html>

然后你的功能变为:

function openNewWindow() {
        window.open("Page.aspx?url=http://page/to/load", "page", "width=700, height=400");
}

答案 2 :(得分:0)

同意Spudley,但如果不可能,你可能会得到负利润。像这样:

body {margin:-50px 0 0 -50px}