[英]Window.Open() is changing the page Layout on Internet Explorer
我在 asp.net 中有一個名為Home.aspx的頁面。 它使用一個母版頁,還有一個按鈕調用:
Response.Write("<script> window.open('page2.aspx','_blank'); </script>")
結果:新標簽頁用page2.aspx打開,如果您返回Home.aspx ,頁面布局被修改,中央<div>
移動到頁面左側。
我能做些什么來解決這個問題? 請記住,這僅在 Internet Explorer 上發生,Firefox 正常工作!
非常感謝。
不考慮你為什么這樣做的優點,你的Response.Write
可能會殺死 Home.aspx 頁面中的 HTML/CSS/JS 輸出並阻止它正確加載。 嘗試使用:
ScriptManager.RegisterStartupScript(typeof(Page),
"OpenPage2", "window.open('page2.aspx','_blank');", true);
而不是 Response.Write,所以一旦頁面加載它就會打開你的窗口。
通常,如果您想從ScriptManager背后的代碼編寫腳本,則是您的朋友。 啟動腳本在預渲染后發生,卸載腳本在關閉時發生,您可以根據調整大小等事件設置它們。
您的 div 移動與翻頁有關,而不是特定按鈕的服務器代碼。 使用
<script language="javascript" type="text/javascript">
function mybutton() {
window.open('page2.aspx', '_blank');
return false;
}
</script>
在你的按鈕 asp 標簽中使用 onclientclick="mybutton" 避免了這種情況下的回發。 除此之外,您可能有不正確的 css 或在翻頁時觸發的代碼,這些代碼在您回發后仍會移動您的 div。
如果有人會發現它有用,這里是對我有用的確切答案:
http://www.schnieds.com/2008/06/css-lost-on-postback-in-aspnet.html
所以,在 OP 的情況下,而不是
Response.Write("<script> window.open('page2.aspx','_blank'); </script>")
那會起作用:
String myScript = "<script> window.open('page2.aspx','_blank'); </script>";
Page.ClientScript.RegisterStartupScript(this.GetType(), "myScript", myScript);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.