【问题标题】:Show part of page in new window在新窗口中显示部分页面
【发布时间】:2011-08-13 22:38:25
【问题描述】:

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

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(上图)在新窗口中打开,但不显示菜单和标题。

【问题讨论】:

    标签: javascript .net new-window


    【解决方案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. 当您提供页面时,请使用不包括标题和菜单等的不同模板。在所有条件相同的情况下,这可能是最好的选择,但我真的无法给出任何建议在不知道整个加载更多关于你的代码的情况下。

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

    【讨论】:

    • 我尝试了第一个替代方案:var pr = window.open('Pag... 然后pr.document.getElementById('header').style.display = 'none'; 感觉应该可行,不是吗?
    • @Niklas - 你需要等到页面加载完毕,所以把你的代码放在pr.onload = function() {.....} 中(我已经编辑了答案以更清楚地显示它)
    • 我已经更改了我的问题中的 JS,但我想我不明白这一切,因为它仍然不起作用 =(
    • 我必须取消标记这个答案。你能看出我的 js 有什么问题吗?
    【解决方案2】:

    您如何打开一个显示加载页面的 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");
    }
    

    【讨论】:

    • 我不得不使用 iframe 解决方案,没有其他方法。所以我猜你得到了积分 =)
    【解决方案3】:

    同意 Spudley 的观点,但如果这不可能,您可能会以负边距过活。像这样:

    正文{边距:-50px 0 0 -50px }

    【讨论】:

      猜你喜欢
      • 2011-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-09
      • 1970-01-01
      • 2015-09-19
      • 1970-01-01
      相关资源
      最近更新 更多