Ссылки внутри iframe (не во всплывающем окне) не работают

Я прошел через другие подобные вопросы, чтобы решить эту проблему определенным , но почему-то в данном случае все решения не работают.

Так вот мой вопрос с примером фрагмент:

у меня есть 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>

как вы можете видеть, мой Iframe не является всплывающим, но появляется под элементом Div: содержимое Iframe заполняется с помощью сервлета при нажатии ссылки.

мой Iframe имеет базовые теги (base target= "_parent") под заголовком iframe.

я использовал тег для указания поведения, а также ссылка имеет target= "_blank", но мои ссылки не работают вообще. Же ссылка работает вне кадра.

пример iframe:

base target="_parent" /base 

текст:

a target="_blank" href="http://ictforu.com" /a 

эта ссылка не работает , клики игнорируются.

любая помощь очень ценится.

к сожалению были некоторые вопросы редактирования HTML-теги ранее.

спасибо, Мадху!--4-->

1 ответов


Я не могу объяснить "почему", потому что не знаю много об атрибуте песочницы iframe, но ссылка открылась на новой вкладке просто отлично для меня, когда я удалил этот атрибут.

edit:

глядя в него немного больше, кажется, что вы можете добавить атрибут "allow-top-navigation", а затем изменить ссылку на "target=_parent", и это работает, но все равно не будет работать, если вы оставите target=_blank

вот немного документация с сайта mozilla

песочница HTML5 только
Если указан как пустая строка, этот атрибут включает дополнительные ограничения на содержимое, которое может отображаться во встроенном фрейме. Значением атрибута может быть разделенный пробелом список маркеров, снимающих определенные ограничения. Допустимые токены:

  • allow-same-origin: позволяет рассматривать содержимое как исходящее из его нормального происхождения. Если это ключевое слово не используется, встроенный контент рассматривается как существо уникального происхождения.
  • allow-top-navigation: позволяет встроенному контексту просмотра перемещаться (загружать) содержимое в контекст просмотра верхнего уровня. Если это ключевое слово не используется, эта операция не разрешена.
  • allow-forms: позволяет встроенному контексту просмотра отправлять формы. Если это ключевое слово не используется, эта операция не разрешена.
  • allow-scripts: позволяет встроенному контексту просмотра запускать скрипты (но не создавать всплывающие окна Windows.) Если это ключевое слово не используется, эта операция не разрешена.

Примечание:

  • когда встроенный документ имеет тот же источник, что и главная страница, настоятельно рекомендуется использовать оба allow-scripts и allow-same-origin в то же время, так как это позволяет внедренный документ программно удалить . Хотя это принято, этот случай не более безопасен, чем не использовать .
  • песочница в целом имеет минимальную помощь, если злоумышленник может организовать отображение потенциально враждебного контента в браузере пользователя за пределами песочницы iframe. Рекомендуется, чтобы такой контент подавался из отдельный выделенный домен, чтобы ограничить потенциальный ущерб.

там не так много, но вот ссылка