在页面上(我们称之为: domain.com/subdirectory/page.html )我有这样的链接:
<a href="javascript:window.open('someurl','_blank');">Link</a>
新窗口打开完美,但问题是,预先存在的窗口被重定向到 {domain.com} / {subdirectory} / 0 ,我无法弄清楚它为什么要添加0到子目录并尝试去那里。
我已经尝试将window.open移动到onclick并使href“void(0)”,甚至将其更改为带有onclick的跨度,但无论我尝试哪种选项,我都会得到相同的结果。我想要的只是弹出新窗口,而且你已经在的页面没有任何变化。
在IE9和Chrome中也会发生同样的事情。
我使用window.open而不是target =“_ blank”的原因是因为我还想从该窗口中删除菜单和其他内容以节省空间。
发现的答案
当我总结这个问题时,我简化了我的代码,使得任何人都无法回答(当然不是故意的)。我为此道歉。
这是实际的window.open命令(减去URL):window.open('[hidden url]'_blank',height='400px',width='450px',location=0,menubar=0,resizable=0,status=0,titlebar=0,toolbar=0);
问题是“location = 0”。当我在window.open上阅读教程时,如果我不想显示URL,它会将其设置为0。就个人而言,我并不在意,但我认为,信息显示的房地产越多越好。事实证明,“location”是一个URL而不是一个布尔属性。
一旦我删除了“location = 0”,它就开始按预期/期望运行。
感谢您尝试提供帮助。
答案 0 :(得分:1)
您需要将其置于onclick事件中。您还需要添加return false;
以阻止浏览器关注该链接。
<a href="#" onclick="window.open('someurl','_blank'); return false;">Link</a>
jsFiddle它的工作原理。
Here's another, slightly cleaner way to do it:
<a id="link" href="#">Link</a>
<script type="text/javascript">
var link = document.getElementById("link");
link.onclick = function() {
window.open('someurl','_blank');
return false;
}
</script>
我不知道你的情况,但这可能是理想的做法:
<a target="_blank" href="someurl">Link</a>
清洁简单,完全相同。
答案 1 :(得分:1)
使用onclick并从事件处理程序返回false:
<a href="#" onclick="window.open('someurl','_blank'); return false;">Link</a>
我还建议将您的Javascript与HTML分开。如果您只有一个链接,则可以执行以下操作:
<a id="linkid" href="someurl" target="_blank">Link</a>
然后在结束</body>
代码之前和该链接代码之后的某个地方:
<script>
document.getElementById('linkid').onclick = function(){
window.open('someurl','_blank');
return false;
}
</script>
答案 2 :(得分:0)
当我总结问题时,我简化了我的代码,使得任何人都无法回答(当然不是故意的)。我为此道歉。
这里是实际的window.open命令(减去网址):window.open('[hidden url]'_blank',height='400px',width='450px',location=0,menubar=0,resizable=0,status=0,titlebar=0,toolbar=0);
问题是location=0
。当我在window.open
上阅读教程时,如果我不想显示该网址,则会将其设置为0。就个人而言,我并不关心,但我认为,信息显示的房地产越多越好。事实证明,location
是一个URL,而不是一个布尔属性。
我删除了location=0
后,它开始按预期/期望运行。
答案 3 :(得分:0)
你应该尝试学习JavaScript。它非常强大,基本的东西也很难学。
有一个名为window的JavaScript对象,其属性(变量)称为location。这是您网页的网址,因此,window.open(..., location = 0, ...);
您要将要打开的网页的网址设为http://the_page_you_are_calling_from_url/0
。
所以......是的,你的位置是正确的,这是正确的。
如果您愿意,请查看Mozilla window API