Javascript 内联JS在移动设备上创建了2个新窗口

Javascript 内联JS在移动设备上创建了2个新窗口,javascript,Javascript,iPhone上的以下代码将打开两个新页面——Twitter和一个空页面。这个代码怎么了?我正在从本地函数返回一个false,所以这种行为不应该发生 <a href='http://twitter.com/intent/tweet?url=<?php echo $permalink; ?>' onclick='javascript:return (function(){window.open("http://twitter.com/intent/tweet?url=<?ph

iPhone上的以下代码将打开两个新页面——Twitter和一个空页面。这个代码怎么了?我正在从本地函数返回一个false,所以这种行为不应该发生

<a href='http://twitter.com/intent/tweet?url=<?php echo $permalink; ?>' onclick='javascript:return (function(){window.open("http://twitter.com/intent/tweet?url=<?php echo $permalink; ?>", "MsgWindow", "width=600, height=600, scrollbars=yes", false); return false;})();'>
<img onmouseover="this.style.opacity='0.8'" onmouseout="this.style.opacity='1'" style="margin-right:5px; width:40px; height:40px" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAclBMVEVhhMZZjcphkMxdislbjMlZjMlZjspWkctWks1vodOOstuaut+xzOfA1Ova5/T+/v/////2+fzx9vvv9frp8PjP4vKLu+Bzq9pekMtZl85Wmc9kpNZqrdp1stt8tt7///9ai8hZjMhai8hZjMpZjMhai8o88kBNAAAAH3RSTlP+/vDo3MzEtZfIzMnH4O3z/uDZz8q/emRjTzwkCQABjfokiQAAA2JJREFUWMOlmNnOqyAQgEdcoNbEv6eaANqaDMP7v+LR7kWgLnPZ6ucsMBtcYtJrKQQv8jwvuBBS99GnIfxXJ3lKxpIhMwkhGsaFXs/qZGEMojWOkMlFt4qlRWLCYrlazNLcmqhYU6hFrF4gmJ+CHktnLJUimQWCTP5gXbldRLqFgfcxVpdbs1ww02GWZmhWiVUhllpu31MzI/0stVKpm4DysTRYsw/2YnXbUON97VzWNQOzTSjtHRa3G1HGIv9mqc2oyWXyk3VltINF0H+wBO3Ry1LxZnVg9gmpF6vYyzLZk6WXozDkC/1g8UVmICur9ni4XTQkJ1a2uLP6eQwTT81o62GSdgy5zWRBjr7djSXnSrCGucadh4fUx7IZ+tkhEjdWNj985XBi9ivqL9SdZ9AtVOl1ZHUeD7fj44cPmK2+USVXrgagR5b0s4bh+OG/+pt1GqRrI4iR5bnV0D7c/PyrHByp5vHKL9B7cjw9TKqrB61yUO0cRdRB50nyxF7WtGUyfuv4jfrnu76oQHoPZvN+8dS0paPX2XuaBQjPJxKE8xCRJsTyZK6krY51hNV6MyIH72U8D39/EdbRe+0LKHw/l0NUSm+2yCH3sZKYhUOdoLe78LIMVFHXo1nBwvstCrnL3yxkXn+NMChP60yc/BVIqpaVoSNWBVJ6ASLQ3Zz+Av4fc1eguwbh/wod1x2I8Q0BEgOlIuD9JlThR6106DNU+Yw8JSHWmCf60IRBllVnF1cHGw80HVyKSAPDnIPxdwg2HpiNOVqEvkSsddSqD7FBZKpD88SaMjYW6cY18MzifetUH2dqC9+ZryuIjjRTfbzMMyuVzYzUxucIuNdtj5FE7NPEuqnYr6ZVP/oc6+v1iJXHapLykODPMSJ/9l82cFrfZ+dnx/rsvy753rYQ0lePqff2mPjuVy8c96n10UdfetjVk0P3OXfIHYrR1BN+zUOw18I3q0+3TjE26Wfzo9loJuj5XKu2WQnSO2/DFs2kfw8gV09rhDK0n1C4LgD4hXL2JnpVNJGp2D6n58tVs0X3Y88kYRkMSfzef3X8N8wicb1oL6dyikbUjsVQLt4XqohuhFioVXtMLTIvhygNrkXD+9WrEvm0Wp3qhn2ATC5Uv2VXO8VB3da+WZbdFr+qiz79HwpZt/mH+WYDAAAAAElFTkSuQmCC" alt="Twitter Share" />
</a>

我想你用自动执行功能把它煮过头了。您只需添加一个额外的returnfalse,如下所示。保持传统

<a href='https://google.com' onClick='window.open("https://stackoverflow.com"); return false;'>
    Google, or so maybe not...
</a>


理想情况下,您不应该内联此函数,但如果必须这样做,则可以添加由
分隔的附加函数
并在结尾返回false。

您不应该在那里有生命。它不应该是内联的,并且不需要
javascript:
标签

这里有一个更安全的代码——它不会在stacksnippet中运行,但您可以复制它并在页面中使用它

这是一个工作版本

功能点击打开(e){
var-w;
试一试{
w=window.open(this.href,this.target,“宽度=600,高度=600,滚动条”);
}捕获(e){
return true;//让链接正常工作
}
返回w?false:true;//如果窗口打开,则单击取消
}
addEventListener(“加载”,函数(){
[…document.queryselectoral(“#social a”)].forEach(lnk=>lnk.addEventListener(“单击”,单击打开))
})


非常感谢您!我可以问一下吗?为什么我不想要生活呢?这很好,但在移动设备上,我仍然可以在Twitter和Pinterest上获得额外的空白页面。但不是Facebook。。。非常奇怪。新页面正在打开b/c,我使用的是http而不是https。。。现在效果很好,谢谢!我还有一个问题-600x600参数不工作。我该如何解决这个问题?啊,我在
querySelectorAll(“#social a”)
中遇到了一个拼写错误-缺少哈希-现在可以工作了