如何避免打开新选项卡时出现空白被阻塞

问题描述 投票:0回答:3

我使用下面的代码在新窗口中打开页面,它按预期工作,但是当我右键单击“在新选项卡中打开”时,它会被“about:blank#blocked”阻止,我希望链接能够在以下位置打开新标签如何解决这个问题?

<a href="javascript:;" style="color:red;" onclick="window.open('http://www.la.unm.edu',null,'left=50,top=50,width=700,height=500,toolbar=1,location=0,resizable=1,scrollbars=1'); return false;">Limk</a>

javascript url window.open
3个回答
4
投票

如@Lain所述,只需填写

href
属性即可。

<a href="http://www.la.unm.edu" style="color:red;" onclick="window.open('http://www.la.unm.edu',null,'left=50,top=50,width=700,height=500,toolbar=1,location=0,resizable=1,scrollbars=1'); return false;">Limk</a>

工作沙箱演示(将其添加到代码片段中,因为代码片段不允许单击异地链接)

如果您想完全控制上下文菜单操作,以便“在新选项卡中打开”的行为与

window.open()
相同,那么您可能应该看看这个答案:如何向网页添加自定义右键菜单?.

你为什么会得到

about:blank#blocked
?好吧,
about:blank
只是一个空白页面,当您右键单击某个元素并单击上下文菜单中的某些内容时,不会触发
onClick
事件。所以,它只显示一个空白页面。

为什么它也说

#blocked
?可能是因为 href 包含“javascript”,并且浏览器试图阻止恶意代码执行。解释这一点的资源很少,但AskLeo.com说……

“about:blank#blocked”有时会显示为安全软件阻止访问某些内容的结果。


1
投票
当 URL(如画布到图像数据 URL 创建的情况)太长而无法作为独立 URL 加载时,浏览器会抛出

about:blank#blocked

数据 URL 限制长度约为 <2048 chars depending on the browser.

开发人员的解决方案是“DataURL 到 BlobURL”转换。 转换的伪代码如下所示:

let U=URL.createObjectURL( DataURLtoBlob( Some_Data_Url) ); A.href=U; A.click(); // Your hidden anchor that opens the image in a tab URL.revokeObjectURL(U); // remember to RELEASE the usually HUGE memory consumed by the blob.



0
投票
https://labprovider.com/

右键单击链接会导致 about:blank#blocked 异常。

© www.soinside.com 2019 - 2024. All rights reserved.