Вопрос по iframe, html – Как заставить ссылку из iframe открываться в родительском окне

321

Мне нужно открыть ссылку на той же родительской странице, а не открывать ее на новой странице.

Обратите вниманиеiframe и родительская страница тот же домен.

Ваш Ответ

13   ответов
1

вы можете столкнуться с проблемой при изменении всей страницы через гиперссылку HTML (тег привязки) из iframe. Есть два решения, чтобы смягчить эту проблему.

Solution 1. Вы можете использовать целевой атрибут тега привязки, как показано в следующем примере.

<a target="_parent" href="http://www.kriblog.com">link</a>

Solution 2. Вы также можете открыть новую страницу в родительском окне из iframe с помощью JavaScript.

<a href="#" onclick="window.parent.location.href='http://www.kriblog.com';">

Помните ⇒target="_parent" устарела в XHTML, но все еще поддерживается в HTML 5.x.

Более можно прочитать по следующей ссылкеhttp: //www.kriblog.com/html/link-of-iframe-open-in-the-parent-window.htm

7

target="_parent" Атрибут внутриanchor tag.

я пробовал это, но был открыт в новом окне Haim Evgi
я попробую это, откроется в новом окне Haim Evgi
Try target = "_ top". Iframe может содержать вложенные iframe? Или реальная ссылка открывается с помощью javascript на событие onclick? Gee
4

Наиболее универсальное и наиболее кросс-браузерное решение - избегать использования тега «base», а вместо этого использовать целевой атрибут тегов «a»:

<a target="_parent" href="http://www..com">Stack Overflow</a>

The<base>ег @ менее универсален, и браузеры не соответствуют его требованиям для размещения в документе, что требует более кросс-браузерного тестирования. В зависимости от вашего проекта и ситуации, может быть трудно или даже совершенно невозможно достичь идеального кросс-браузерного размещения<base> тег

Делать это сtarget="_parent" атрибут<a>ег @ не только более удобен для браузера, но также позволяет различать ссылки, которые вы хотите открыть в iframe, и ссылки, которые вы хотите открыть в родительско

0

Пытатьсяtarget="_top"

<a href="http://example.com" target="_top">
   This link will open in same but parent window of iframe.
</a>
8

вы можете использовать целевой атрибут, но он технически устарел в XHTML. Это оставляет вас с использованием JavaScript, обычно что-то вродеparent.window.location.

@ PaulD. Ждите ссылку, которую вы разместили в настоящее время 404s. Dan Loewenherz
@ Дэн: ага, да, спасибо. Свежая ссылка: Dev.w3.org / html5 / спецификации / ... Paul D. Waite
569

Я нашел, что лучшее решение было использоватьбаз тег. Добавьте следующее в заголовок страницы в iframe:

<base target="_parent">

Это загрузит все ссылки на странице в родительском окне. Если вы хотите, чтобы ваши ссылки загружались в новом окне, используйте:

<base target="_blank">

Этот тег поддерживается во всех браузерах.

Как этот тариф работает в разных браузерах? Charlie Schliesser
@ Уилф, я был не совсем прав:;)<base target> должен предшествовать любому<a href>, так как он устанавливает контекст просмотра по умолчанию для следующих ссылок;<base href> должен предшествовать любой ссылке на URL <* href> <* src> <form action> <object data>…) Так как он устанавливает базовый URL, относительно которого разрешаются относительные UR sam
почему ты отвечал на этот вопрос годпосл Я ответил точно так же? но вы были выбраны. это так странно. vsync
Я думаю, это потому, что ваш ответ открывает ссылку в новом окне, а мой открывает ее в родительском окне iframe, который был первоначальным вопросом. Извини, что украл твой гром! Chris Vasselli
Обратите внимание, что<base тег не закрывается в соответствии со спецификацией W3.org / TR / html5 / документ-метаданные # заместитель базового элемента так и должно быть<base target="_parent" > Mark Schultheiss
22

Вы можете использовать любые варианты

в случае только родительской страницы:

если хочешь открыть все ссылки на родительскую страницу или родительский iframe, тогда вы используете следующий код в разделе заголовка iframe:

<base target="_parent" />

ИЛ

если хочешь открыть конкретная ссылка на родительскую страницу или родительский iframe, тогда вы используете следующий путь:

<a target="_parent" href="http://specific.org">specific Link</a>
<a  href="http://normal.org">Normal Link</a>

ИЛ

в случае вложенного iframe:

Если хочешь открыть все ссылки в окно браузера (перенаправить в URL браузера), затем вы используете следующий код в разделе заголовка iframe:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script type="text/javascript">
    $(window).load(function(){
        $("a").click(function(){
            top.window.location.href=$(this).attr("href");
            return true;
        })
    })
</script>

ИЛ

если хочешь открыть конкретная ссылка в окно браузера (перенаправить в URL браузера), затем вы используете следующий путь:

<a  href="http://specific.org"   target="_top" >specific Link</a>

ил

<a  href="javascript:top.window.location.href='your_link'">specific Link</a>
<a  href="javascript:top.window.location.href='http://specific.org'">specific Link</a>
<a  href="http://normal.org">Normal Link</a>
Хороший ответ, мне нужно было просто использовать это для конкретной ссылки, но принятый ответ только описывает, как изменить цель для всех ссылок на странице. Благодарност dading84
13

base который позволяет вам:

Укажите URL-адрес по умолчанию и цель по умолчанию для всех ссылок на странице:

<base target="_blank" />

Указывая_blank убедитесь, что все ссылки внутри IFrame будет открыт снаружи.

@ PsychoDad Все основные браузеры. W3schools.com / теги / tag_base.asp timetofly
Какой браузер поддерживает это? jjxtra
3

<a target="parent"> откроет ссылки в новой вкладке / окне ...<a target="_parent"> откроет ссылки в родительском / текущем окне, не открывая новые вкладки / окна. Don't_forget_that_underscore

0

Да, я нашел

<base target="_parent" />

Это полезно для открытия всех ссылок iframe, открытых в iframe.

А такж

$(window).load(function(){
    $("a").click(function(){
        top.window.location.href=$(this).attr("href");
        return true;
    })
})

Это мы можем использовать для всей страницы или конкретной части страницы.

Спасибо всем за помощь.

0
   <script type="text/javascript"> // if site open in iframe then redirect to main site
        $(function(){
             if(window.top.location != window.self.location)
             {
                top.window.location.href = window.self.location;
             }
        });
    </script>
135

Используйте целевой атрибут:

<a target="_parent" href="http://url.org">link</a>
я попробую это, откроется в новом окне Haim Evgi
+ 1 от меня, base target = "_ parent" работает, но target = "_ parent" никогда не подводил меня! user903601
это работает для SVG! Rustam
target="_blank" работает также MaxV
<base target="_blank"> нормально, но вопрос здесь об одной ссылке, а не об изменении поведения всех ссылок в iframe. Для меня это правильный ответ. kriskodzi
32

С JavaScript:

window.parent.location.href= "http://www.google.com";
Это прекрасно и работает для меня. Спасибо. Node Developer
Идеальное решение, работа для меня ... Hitesh Vala Ahir

Похожие вопросы