javascript - 无法在浏览器中打开新标签页?

标签 javascript html

这听起来像是重复的问题,但我不知道我面临的是什么问题。

这是我的代码

<!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 时打开一个新选项卡,但它会在同一窗口中打开 url。我不知道我在这里做错了什么

最佳答案

改变函数名,定义一个没有作用域的函数和定义window.functionName是一样的

所以当你定义 open 时,你将覆盖现有的 window.open 所以将函数的名称更改为 open2 或其他名称。

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>

关于javascript - 无法在浏览器中打开新标签页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23472358/

相关文章:

php - Wordpress如何让段落出现在页面的某个区域?

html - 全 div 宽度的文本框和按钮

javascript - 如何根据计数设置月份值

javascript - 试图让 Telerik ScriptRegistrar 加载 Telerik 脚本和自定义脚本

javascript - Hook appendChild 时的竞争条件

html - Outlook.com 中的按钮文本对齐方式

javascript - 在同一元素上启动另一个事件监听器时如何停止一个事件监听器?

javascript - 从 boostraped 扩展创建新选项卡

javascript - JS中关联数组和对象的区别

javascript - HTML5 Canvas /动画资源