Javascript 在怪癖模式下打开也会将后续页面更改为怪癖模式

Javascript 在怪癖模式下打开也会将后续页面更改为怪癖模式,javascript,vb.net,quirks-mode,Javascript,Vb.net,Quirks Mode,我正在使用window.open打开一个新窗口,从代码隐藏到以怪癖模式运行的页面。但是,当我单击此按钮转到第二页时,它也会更改第一页模式 这是我写的一段代码: Dim url1 As String = "MYURL.html" Response.Write("<script>") Response.Write("newwindow=window.open('" + url1 + "','_blank');") Response.Write("newwindow.focus()") R

我正在使用window.open打开一个新窗口,从代码隐藏到以怪癖模式运行的页面。但是,当我单击此按钮转到第二页时,它也会更改第一页模式

这是我写的一段代码:

Dim url1 As String = "MYURL.html"
Response.Write("<script>")
Response.Write("newwindow=window.open('" + url1 + "','_blank');")
Response.Write("newwindow.focus()")
Response.Write("</script>")
Dim url1 As String=“MYURL.html”
回答。写(“”)
Response.Write(“newwindow=window.open”(“+url1+”,“\u blank”);)
Response.Write(“newwindow.focus()”)
回答。写(“”)
有办法解决这个问题吗

注意:我的目标页面确实应该在怪癖模式下运行,因此这不是我可以忽略的部分,我必须使用服务器上运行的按钮来实现这一点,因此我无法使用目标设置为
\u blank

的锚定标记实现相同的效果。请尝试以下操作:

Dim url1 As String = "MYURL.html"
Response.Write("<script>")
Response.Write("function fen_pop(url) {")
Response.Write("newwindow=window.open('" + url + "','_blank');")
Response.Write("if (window.focus) {newwindow.focus();}")
Response.Write("newwindow.focus();")
Response.Write("return false;")
Response.Write("}")
Response.Write("</script>")
Dim url1 As String=“MYURL.html”
回答。写(“”)
Write(“函数fen_pop(url){”)
Response.Write(“newwindow=window.open”(“+url+”,“\u blank”);)
Write(“if(window.focus){newwindow.focus();}”)
Response.Write(“newwindow.focus();”)
响应。写入(“返回false;”)
响应。写(“}”)
回答。写(“”)
在html中使用链接:

<a href="#" onclick="return fen_pop('MYURL.html')">Link to popup</a>

“return false;”补充道,我想这会解决你的问题。 这是为了防止浏览器跟随实际链接


另一种书写方式是:

Response.Write("<script>")
Response.Write("function fen_pop(url) {")
Response.Write("newwindow=window.open('" + url + "','_blank');")
Response.Write("if (window.focus) {newwindow.focus();}")
Response.Write("newwindow.focus();")
Response.Write("}")
Response.Write("</script>")
Response.Write(“”)
Write(“函数fen_pop(url){”)
Response.Write(“newwindow=window.open”(“+url+”,“\u blank”);)
Write(“if(window.focus){newwindow.focus();}”)
Response.Write(“newwindow.focus();”)
响应。写(“}”)
回答。写(“”)
在html页面中:

<a href="#" onclick="fen_pop('MYURL.html'); return false;">Link to popup</a>

我终于找到了一种方法,但这是一个小问题,但它现在可以解决

Dim url1 As String = "MYURL.html"
Response.Write("<script>")
Response.Write("newwindow=window.open('" + url1 + "','_blank');")
Response.Write("newwindow.focus()")
Response.Write("window.open('" + HttpContext.Current.Request.Url.AbsoluteUri + "','_self')")
Response.Write("</script>")

编辑: 如果弹出窗口阻止程序仍然阻止站点,则第一页将进入怪癖模式。。但下面的代码会提醒用户修复问题,如果弹出窗口阻止程序被禁用,则会显示第二页

Dim url1 As String = "MYURL.html"    
Response.Write("<script>")
Response.Write("newwindow=window.open('" + url1 + "','_blank');")
Response.Write("if(!newwindow || newwindow.closed || typeof newwindow.closed=='undefined'){")
Response.Write("alert('please disable pop-up blocker for this site');")
Response.Write("}")
Response.Write("else{")
Response.Write("newwindow.focus();")
Response.Write("}")
Response.Write("window.open('" + HttpContext.Current.Request.Url.AbsoluteUri + "','_self')")
Response.Write("</script>")
Dim url1 As String=“MYURL.html”
回答。写(“”)
Response.Write(“newwindow=window.open”(“+url1+”,“\u blank”);)
Response.Write(“if(!newwindow | | | newwindow.closed | | | typeof newwindow.closed=='undefined'){”)
写(“警报('请禁用此站点的弹出窗口阻止程序');”)
响应。写(“}”)
回答。写(“else{”)
Response.Write(“newwindow.focus();”)
响应。写(“}”)
Response.Write(“window.open”(“+HttpContext.Current.Request.Url.AbsoluteUri+”,“u self”))
回答。写(“”)

编辑2:我终于发现了问题所在…实际上,response.write是我的第一页进入怪癖模式的原因,为了解决它,我使用page.RegisterClientScriptBlock打开了我的窗口,一切正常

Page.RegisterClientScriptBlock("", "<script>window.open('" & MYURL & "', '_blank', 'toolbar=no');</script>")
Page.RegisterClientScriptBlock(“,”窗口.open(“&MYURL&“,”空白“,”工具栏=否“;”)

感谢您的回答…我真的应该在按钮上使用此代码,因此我在其中一个按钮上尝试了上述代码,但是“return false”会阻止打开新窗口,因此第一页只会刷新并转到quirks modenop,此函数称为首次打开窗口。在return false阻止源网页后,重试。我再次尝试,但仍然具有相同的效果,我认为这是因为它在服务器上运行…我无法添加“fen_pop('MYURL.html');return false直接在按钮的onclick属性中,因为它还不存在,如果我在代码中没有fen_pop函数的情况下编写这个return false,它仍然会有相同的效果
Page.RegisterClientScriptBlock("", "<script>window.open('" & MYURL & "', '_blank', 'toolbar=no');</script>")