我使用下面的代码在新窗口中打开页面,它按预期工作,但是当我右键单击“在新选项卡中打开”时,它会被“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>
如@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”有时会显示为安全软件阻止访问某些内容的结果。
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.