window.open在IE中无法正常工作
问题描述:
我有一个与IE(测试版本6 & 8)问题很大的问题。 Window.open方法在FF,Opera,Chrome中正常工作。 IE打开新窗口,但在主窗口中加载相同的URL。 我知道一个解决方案可以从href中删除url,但我需要它为JS关闭案件。另外我需要为新窗口定位。window.open在IE中无法正常工作
IE“错误控制台”说:访问被拒绝。
<script type="text/javascript">
function regForm()
{
var left = Math.abs((window.innerWidth - 550)/2);
var top = Math.abs((window.innerHeight - 600)/2);
window.open("http://somepage.html", "Signin", "width=550,height=600,scrollbars=1").moveTo(left, top);
}
</script>
<a class="ibm-b1-bttn" href="http://somepage.html" onclick="javascript:regForm(); return false;">Register Now</a>
请帮助我,这对我很重要。非常感谢!
答
你可以尝试引用没有HTTP的URL吗?所以somepage.html
或\somepage.html
取决于文件驻留在您的服务器上的位置?
+0
这不会帮助,我不认为。 – Pointy 2011-05-31 15:56:01
答
unchain的窗函数调用,看看哪一个它实际上是给你的错误:
var myWin = window.open("http://somepage.html", "Signin", "width=550,height=600,scrollbars=1");
myWin.moveTo(left, top);
window.open不应该放弃这样的错误。我打赌这是移动?
答
您可以使用此解决方法来修复它。首先打开一个空白的新窗口,移动它,然后改变位置。它似乎是与IE浏览器的安全问题:
锚标签:
<a class="ibm-b1-bttn" href="#" onclick="regForm();">Register Now</a>
JS功能:
function regForm() {
var left = Math.abs((window.innerWidth - 550)/2);
var top = Math.abs((window.innerHeight - 600)/2);
var win = window.open("", "Signin", "width=550,height=600,scrollbars=1")
win.moveTo(left, top);
win.location = "http://somepage.html";
}
你试图消除'的moveTo()'? - 我怀疑这比'window.open()'本身更可能是问题。 – Spudley 2011-05-31 15:52:54
问题不在于window.open(),它与事件处理程序的工作方式一致。 – Pointy 2011-05-31 15:55:52
您是否尝试过更改'',以便它的“href”值只是“#”? – Pointy 2011-05-31 15:56:48