JavaScript/jQuery - 在弹出窗口中打开当前链接

Ale*_*lex 19 javascript jquery popup

<a href="http://google.com">Link</a>
Run Code Online (Sandbox Code Playgroud)

如何在弹出窗口中打开此链接?并阻止浏览器阻止它

jps*_*ons 64

有"新窗口",还有"弹出窗口".使用target=_blank将在新窗口中打开,但现代浏览器默认情况下将新窗口置于新选项卡中.听起来这不是你想要的.

对于您想要的实际弹出窗口window.open(),并确保包含一些特定的宽度和高度,否则某些浏览器仍会将新窗口放在新选项卡中.达林的例子对我来说很好看.

至于弹出窗口阻止,浏览器采用的一般方法是允许用户操作启动的弹出窗口(例如单击),而阻止通过脚本自发启动的弹出窗口:

<script type="text/javascript">
    window.open("http://www.google.com/", "Google", "width=500,height=500");
</script>
Run Code Online (Sandbox Code Playgroud)

但是,广告拦截是一场不断升级的战争,您永远无法确定弹出窗口是否会打开.如果弹出窗口阻止,则window.open调用返回null.所以我会像这样修改达人的例子:

<a href="http://www.google.com/"
    onclick="return !window.open(this.href, 'Google', 'width=500,height=500')"
    target="_blank">
Run Code Online (Sandbox Code Playgroud)

如果弹出窗口被阻止,true则会在新窗口或选项卡中打开它后面的onclick返回,该链接在它们单击的链接之后.这是一个后备,所以至少内容是可访问的(如果不是很漂亮).

  • 我还应该补充一点,如果弹出的内容在一个完整的浏览器窗口中打开,那么弹出的内容不会完全被破坏,因为这个后备,并且因为用户可以随时右键单击该链接并"打开新的"选项卡或窗口"完全绕过onClick处理程序. (3认同)

Dar*_*rov 9

<a href="http://google.com" onclick="window.open(this.href, 'windowName', 'width=1000, height=700, left=24, top=24, scrollbars, resizable'); return false;">Link</a>
Run Code Online (Sandbox Code Playgroud)