我遇到这种情况:
有一个带登录表单的登录页面(表单操作是$ _SERVER ['PHP_SELF'])。 用户登录时,将检查用户可以访问的应用程序,并在新选项卡中打开该用户可用的所有应用程序。如果用户可以访问应用程序(例如)“文档”和“网站”,则会打开2个标签。
我使用window.open('app1.html','_newhtml');
打开新标签页,有人说它只适用于Firefox。没关系,对我来说没什么大不了的。
问题是,它只打开1个标签,虽然我写了2次
window.open('app1.html','_newhtml'); window.open('app2.html','_newhtml');
如何打开2个标签?服务器端或客户端编程有什么黑客攻击吗?
答案 0 :(得分:5)
问题是,您正在识别具有相同标识符的窗口。您在此处使用自定义的,但您也可以提供浏览器保留的(_self
,_top
和_blank
)
试试这个
window.open('app1.html','_newhtml');
window.open('app2.html','_newhtml2');
或只使用_blank
,它不保证新的标签,如果浏览器支持它,只是一个新窗口。
答案 1 :(得分:1)
使用'_blank'
作为目标将始终在新的浏览器视图中打开。这可能是新选项卡或新窗口,具体取决于用户的浏览器和设置(某些浏览器不支持选项卡等)。
另一个选项是使用两个单独的命名标识符(例如'_newhtml'
和'_newhtml2'
),然后允许您稍后在这两个窗口中打开其他页面。