iframe内的链接(不在弹出窗口中)不起作用

Mad*_*Rao 7 html iframe hyperlink

我已经解决了其他类似的问题来解决这个问题,但在这种情况下,所有解决方案都无法正常工作.

所以这是我的示例片段的问题:

我有一个html文件,看起来像这样:

<div id="portalRight">
    <a target="_blank" href="http://ictforu.com">   <!-- this link works , it opens up another tab -->
    <ul id="subtabnav">
        <li class="datasetTab">
            <a href="#">dataset</a> <!-- Click on this will trigger the dataset iframe to be loaded thru a servlet call  -->
        </li>
        <li class="obsGraphTab" data-bind="css: { disabled: !aekos.subTabViewModel.graphTabsEnabled() }">
            <a href="#">Observation Graph</a>
        </li>
        .....
    </ul>

    <div id="dataset">
        <iframe id="dataset-frame" class="graphiframe" seamless sandbox="allow-same-origin allow-scripts"></iframe>
    </div>
    <div id="testViewer">
                <iframe id="test-viewer-frame" class="graphiframe" seamless sandbox="allow-same-origin allow-scripts"></iframe>
    </div>

</div>
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我iframe不是弹出窗口,而是出现在div元素下:iframe单击链接时使用servlet填充内容.

我的标题下iframe有基础标记(基础target="_parent")iframe.

我已经使用<base>tag来指定行为,而且链接也有target="_blank",但我的链接根本不起作用.相同的链接在iframe外部工作.

示例iframe:

base target="_parent" /base 
Run Code Online (Sandbox Code Playgroud)

身体内容:

a target="_blank" href="http://ictforu.com" /a 
Run Code Online (Sandbox Code Playgroud)

此链接不起作用,忽略点击次数.

任何帮助深表感谢.

抱歉,之前的html标签存在一些编辑问题.

谢谢,Madhu

str*_*iii 10

我无法解释'为什么'因为不了解iframe的sandbox属性,但是当我删除该属性时,在新标签中打开的链接对我来说很好.

编辑:

再看一下,似乎你可以添加属性"allow-top-navigation",然后将链接更改为'target = _parent'并且这样可行,但如果你离开target = _blank它仍然无效

以下是mozilla网站的一些文档

sandbox仅限HTML5
如果指定为空字符串,则此属性会对可以显示在内联框架中的内容启用额外限制.属性的值可以是以空格分隔的标记列表,这些标记可以解除特定限制.有效代币是:

  • allow-same-origin:允许将内容视为来自其正常来源.如果未使用此关键字,则嵌入的内容将被视为来自唯一来源.
  • allow-top-navigation:允许嵌入式浏览上下文将内容导航(加载)到顶级浏览上下文.如果未使用此关键字,则不允许此操作.
  • allow-forms:允许嵌入式浏览上下文提交表单.如果未使用此关键字,则不允许此操作.
  • allow-scripts:允许嵌入式浏览上下文运行脚本(但不创建弹出窗口).如果未使用此关键字,则不允许此操作.

注意:

  • 当嵌入式文档具有相同起源的主要网页,我们强烈不鼓励同时使用allow-scripts,并allow-same-origin在同一时间,作为能够嵌入文档以编程方式删除的sandbox属性.虽然它被接受,但这种情况并不比不使用该sandbox属性更安全.
  • 如果攻击者可以安排在沙盒之外的用户浏览器中显示潜在的恶意内容,则沙盒通常只有极少的帮助iframe.建议此类内容应从单独的专用域提供,以限制潜在的损害.

那里没有更多,但这里是链接