这可能听起来像是重复的问题,但我不知道我面临的问题。
这是我的代码
<!DOCTYPE html>
<html>
<body>
<script>
function open()
{
var win = window.open('http://stackoverflow.com/', '_blank');
if(win){
win.focus();
}else{
alert('Please allow popups for this site');
}
}
</script>
<div align="center">
<h4>Online Users</h4>
<ul>
<li onClick="open()">John</li>
</ul>
</div>
<link href="http://fonts.googleapis.com/css?family=Open+Sans Condensed:300italic,300,700" rel="stylesheet" type="text/css">
<div class="nomessages">
<img src="../img/unnamed.jpg" id="noMessagesImage" />
</div>
<div class="chatscreen">
<ul class="chats">
<!-- The chat messages will go here -->
</ul>
</div>
<form id="chatform">
<textarea id="message" placeholder="Write something.." rows="10" cols="30"></textarea>
<input type="submit" id="submit" value="SEND"/>
</form>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="../js/moment.min.js"></script>
<script src="/socket.io/socket.io.js"></script>
<script src="../js/chat.js"></script>
</body>
</html>
我希望在点击John时打开一个新标签,但它会在同一个窗口打开网址。我不知道我在这里做错了什么
答案 0 :(得分:4)
更改函数名称,定义不带作用域的函数与window.functionName
相同所以当你定义开放时,你会超越window.open 所以改变你的功能名称 打开2或其他东西
function open2()
{
var win = window.open('http://stackoverflow.com/', '_blank');
if(win){
win.focus();
}else{
alert('Please allow popups for this site');
}
}
并在您的HTML中
<li onclick="open2()">John</li>
答案 1 :(得分:3)
答案 2 :(得分:3)
使用openx()而不是open()。
<!DOCTYPE html>
<html>
<body>
<script>
function openx()
{
var win = window.open("http://stackoverflow.com/", "_blank");
}
</script>
<div align="center">
<h4>Online Users</h4>
<ul>
<li onclick="openx()">John</li>
</ul>
</div>
</body>
</html>
答案 3 :(得分:3)
尝试为函数使用不同的名称..
<script>
function open1()
{
var win = window.open('http://stackoverflow.com/', '');
if(win){
win.focus();
}
else{
alert('Please allow popups for this site');
}
}
</script>
HTML标记:
<li onclick="open1()">John</li>
答案 4 :(得分:2)
嗯,这取决于您的浏览器设置:在新窗口中打开,或打开为新选项卡。 所以可能,您不能强制浏览器打开新选项卡而不是窗口。
答案 5 :(得分:2)
要打开胜利,你应该:
<li onClick="window.open('https://stackoverflow.com/', '_blank')">John</li>
如果在浏览器中没有设置偏好新标签或窗口的特殊行为,它将在新标签中打开。但如果您为窗口添加额外的参数,它将在新的胜利中打开。
<li onClick="window.open('https://stackoverflow.com/', '_blank','height=200,width=200')">John</li>
此外,这个话题还有很多讨论: 2011 year StackOverflow