2014-11-24 60 views
0

这是一个精简版的代码,总是运行完美,但现在不在Windows 8/IE10中。HTA使用现有窗口

<html> 
<head> 
<HTA:APPLICATION ID = "ICP" 
INNERBORDER = "no" 
CAPTION = "no" 
SHOWINTASKBAR = "no" 
Scroll = "no" 
navigable = "yes" 
WINDOWSTATE = "maximize"> 
<script> 
function firstwindow() 
{ 
window.open("red.htm","mywindow"); 
} 
function secondwindow() 
{ 
window.open("blue.htm","mywindow"); 
} 
</script> 
</head> 
<body> 
<a onClick = "firstwindow()">OPEN FIRST WINDOW </a> 
<a onClick = "secondwindow()">OPEN SECOND WINDOW </a> 
</body> 
</html> 

运行,并且打开第一窗口(red.htm)后,我想“第二窗口”在同一窗口中为“第一窗口”,打开。 它用于正常工作,但现在它在NEW窗口中打开“第二个窗口”(blue.htm)。

任何想法,将不胜感激。谢谢

回答

0

根据this article,window.open在HTA下不受信任。

通过HTA规则,window.open命令不被认为是安全的,所以任何以这种方式抛出的新窗口都会有(至少在IE7中)一个地址栏。如果窗口的内容是可信的,那么你可以使用window.showModelessDialog来打开一个被认为是可信HTA一部分的窗口。

而是使用的showModalDialog

+0

使用“window.showModelessDialog”而不是“window.open”仍然没有解决我的主要关注的是获得“第二个窗口”在同一窗口中的“第一窗口打开”。我一直认为,如果第二个窗口与第一个窗口的名称相同(在上面的代码中是'mywindow'),它们将在同一个窗口中打开。 – 2014-11-24 15:11:16

+0

这似乎超出了HTA的手,因此showModalDialog可以用来代替。或者,打开的窗户可以关闭并重新打开 – mplungjan 2014-11-24 15:57:18