javascript - 内联 JS 在移动设备上产生 2 个新窗口

标签 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=<?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>

最佳答案

我认为你用自动执行功能把它做得过度了。您只需添加一个额外的 return false 即可,如下所示。保持老派。

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

理想情况下,您不应该将其内联,但如果必须,则可以添加由 ; 分隔的其他函数,并在最后返回 false。

关于javascript - 内联 JS 在移动设备上产生 2 个新窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58898236/

相关文章:

javascript - 如何拦截弹出窗口中的重定向?

php - Ajax - 将内容加载到 Textarea 中

javascript - Firefox 和 IE8 中的 onKeyPress 事件

javascript - 在单线程环境中由可变数据类型引起的典型问题类别是什么?

javascript - Django 中的通用进度条

javascript - 如何在读取第二个值之前禁用 NFC 事件监听器?

javascript - 如果 html 表中的字符串 == 带有 Javascript 的内容则显示按钮

javascript - JQuery - 滚动时追加和删除 html 内容

JavaScript this 来自 jQuery this

javascript - 加载时在特定位置启动 HTML5 视频?