Windows.open()JavaScript在IE中不工作
我正在尝试使用下面的代码打开新窗口。它在google chrome和firefox中正常工作,但在IE中,它实现了windows的合并。 如果我通过user1登录,则会打开一个新窗口,但当我使用user2登录时,它会用user2代替user1的用户会话,而不是打开新窗口 这是我的密码Windows.open()JavaScript在IE中不工作,javascript,asp.net,internet-explorer,Javascript,Asp.net,Internet Explorer,我正在尝试使用下面的代码打开新窗口。它在google chrome和firefox中正常工作,但在IE中,它实现了windows的合并。 如果我通过user1登录,则会打开一个新窗口,但当我使用user2登录时,它会用user2代替user1的用户会话,而不是打开新窗口 这是我的密码 ScriptManager.RegisterStartupScript(Page, Page.GetType(), "name", "var myWindow = window.open('" & pag
ScriptManager.RegisterStartupScript(Page, Page.GetType(), "name", "var myWindow = window.open('" & pageurl & "','name','titlebar=yes,toolbar=no,directories=no,location=no,status=yes,overflow=hidden;menubar=no,resizable=yes,scrollbars=no,left=0,top=0,width=(screen.availWidth),height= (screen.availHeight)'); myWindow.resizeTo(screen.availWidth, screen.availHeight); ; myWindow.focus(); ", True)
每次新用户登录系统时,我都想在IE中打开新窗口。原因可能是您的
pageurl
变量不正确或包含空格。(顺便说一句,不清楚它是从哪里来的,所以您可能需要将它更改为window.location.href
)
另外,请尝试改用ClientScript.RegisterStartupScript
:
Page.ClientScript.RegisterStartupScript(GetType(), "name", "(js code)", true);
当您使用RegisterStartupScript
时,它将在页面中的所有元素之后(表单的结束标记之前)呈现脚本。这使脚本能够调用或引用页面元素,而不会在页面的DOM中找不到它们
另一方面,当您使用
RegisterClientScriptBlock
时,脚本在Viewstate
标记之后呈现,但在任何页面元素之前呈现。窗口中的第二个参数。open是窗口名称/id。如果您保留相同的名称,当您将该窗口命名为“名称”时,该窗口将被重用。我建议您使用\u blank
:
ScriptManager.RegisterStartupScript(Page, Page.GetType(), "name", "var myWindow = window.open('" & pageurl & "','_blank','titlebar=yes,toolbar=no,directories=no,location=no,status=yes,overflow=hidden;menubar=no,resizable=yes,scrollbars=no,left=0,top=0,width=(screen.availWidth),height= (screen.availHeight)'); myWindow.resizeTo(screen.availWidth, screen.availHeight); ; myWindow.focus(); ", True)
参考资料:所以问题是您的弹出窗口被重复使用了?@kblok。。对我希望每次都有新的弹出窗口。查看我的答案,告诉我是否有用。