jquery 打开带有iFrame链接的新选项卡-页面被阻止

ndasle7k  于 2022-12-22  发布在  jQuery
关注(0)|答案(1)|浏览(187)

我有一个带有iFrame的页面。这个iFrame有一些通过jQuery的 AJAX 服务器通信。在我的iFrame中,我有几个链接,它们应该在一个新的标签页或点击弹出窗口中打开。这对于静态链接来说非常好用,因为我有一个固定的URL。这些链接看起来像这样:

<a href="https://www.google.com" target="_blank" rel="noopener noreferrer">Google Test</a>

正如我提到的,这个链接工作得非常好。但是,我有另一个链接,它的URL是根据服务器查询的反馈分配的。这个链接看起来像这样:

<a href="#" id="documentLink"  rel="noopener noreferrer" target="_blank">
    <img alt="PDF" src="../images/icons/icon_pdf.svg" style="width:30px;height:30px;margin-right:15px;">
    <span>View Report</span>
</a>

在我的Javascript中,我使用以下代码来设置URL:

$( '#documentLink' ).attr('href',data.documentLinkClickable);

当我点击这个链接时,会打开一个新的标签页,但Chrome告诉我“my_domain is blocked”。这个页面已经被Chrome阻止了。ERR_BLOCKED_BY_CLIENT。当我从标签页复制URL并在另一个私人标签页中输入时,页面打开得很好。
我也尝试过在弹出窗口中打开链接。弹出窗口打开了,但我得到的反馈是页面被阻止了。代码如下:

$( '#documentLink' ).attr('onclick','javascript:window.open("'+data.documentLinkClickable+'","_blank","toolbar=0, location=0, menubar=0, height=800, width=1200"); return false;');

我想知道为什么这个链接对静态链接有效,但当我通过jQuery分配URL时却无效。
顺便说一句:我的iFrame头看起来像这样:

<iframe id="25_IFrame2" class="iframe" sandbox="allow-same-origin allow-scripts allow-forms allow-popups allow-modals allow-downloads" src="https://my_domain/my_page?my_parameter" scrolling="yes" style="width: 1903px; height: 489px;"></iframe>
0pizxfdo

0pizxfdo1#

经过一些额外的研究,我能够修复我的问题。我必须添加一个额外的津贴到沙箱的iFrame这是

allow-popups-to-escape-sandbox

有趣的是,这适用于将链接作为弹出窗口打开以及在新标签页中打开。
顺便说一句:Firefox似乎不需要这个标志,因为它以前已经在Firefox中工作过了。

相关问题