Відповіді:
Я знайшов найкращим рішенням використовувати базовий тег. Додайте до заголовку сторінки в iframe:
<base target="_parent">
Це завантажить усі посилання на сторінку у батьківському вікні. Якщо ви хочете, щоб ваші посилання завантажувались у новому вікні, використовуйте:
<base target="_blank">
Цей тег повністю підтримується у всіх браузерах.
<base target>
повинен бути перед будь-яким <a href>
, оскільки він встановлює контекст перегляду за замовчуванням для наступних посилань; <base href>
має бути перед будь-якою посиланням URL-адреси ( <* href>
<* src>
<form action>
<object data>
…), оскільки вона встановлює базову URL-адресу, щодо якої відносяться відносні URL-адреси.
<base
тег не має закриття згідно зі специфікацією w3.org/TR/html5/document-metadata#the-base-element, так і має бути<base target="_parent" >
Використовуйте цільовий атрибут:
<a target="_parent" href="http://url.org">link</a>
<base target="_blank">
це нормально, але питання тут про одне посилання, а не про зміну поведінки всіх посилань на iframe. Для мене це правильна відповідь.
Ви можете використовувати будь-які варіанти
у випадку лише з батьківською сторінкою:
якщо ви хочете відкрити все посилання на батьківську сторінку чи батьківський 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>
Існує HTML-елемент, base
який дозволяє:
Вкажіть URL-адресу за замовчуванням та цільову ціль за замовчуванням для всіх посилань на сторінці:
<base target="_blank" />
Вказавши, _blank
ви переконайтеся, що всі посилання всередині iframe будуть відкриті назовні.
Як зазначалося, ви можете використовувати атрибут target, але він технічно застарів у XHTML. Це дозволяє вам використовувати JavaScript, зазвичай щось подібне parent.window.location
.
Якщо ви використовуєте iframe на своїй веб-сторінці, ви можете зіткнутися з проблемою під час зміни всієї сторінки через гіперпосилання HTML (тег прив’язки) до iframe. Для усунення цієї проблеми є два рішення.
Рішення 1. Ви можете використовувати цільовий атрибут якорного тегу, як наведено в наступному прикладі.
<a target="_parent" href="http://www.kriblog.com">link</a>
Рішення 2. Ви також можете відкрити нову сторінку у батьківському вікні з iframe з JavaScript.
<a href="#" onclick="window.parent.location.href='http://www.kriblog.com';">
Пам'ятайте target="_parent"
, що in був застарілий у XHTML, але він все ще підтримується в HTML 5.x.
Докладніше можна прочитати за наступним посиланням http://www.kriblog.com/html/link-of-iframe-open-in-the-parent-window.html
Найбільш універсальне і найбільш крос-браузерне рішення - уникати використання тегу "base", а замість цього використовувати цільовий атрибут тегів "a":
<a target="_parent" href="http://www.stackoverflow.com">Stack Overflow</a>
<base>
Тег менш універсальний і браузери непослідовні в своїх вимогах до його розміщення в документі, вимагає додаткового тестування крос-браузера. Залежно від вашого проекту та ситуації, досягти ідеального розміщення <base>
тегу між браузерами може бути важко або навіть зовсім неможливо .
Робити це за допомогою target="_parent"
атрибута <a>
тегу не тільки більш зручно для браузера, але також дозволяє розрізняти ті посилання, які ви хочете відкрити в iframe, і ті, які ви хочете відкрити в батьківському.
Я знайшов
<base target="_parent" />
Це корисно для відкриття всіх посилань iframe, відкритих у iframe.
І
$(window).load(function(){
$("a").click(function(){
top.window.location.href=$(this).attr("href");
return true;
})
})
Це ми можемо використовувати для цілої сторінки або певної частини сторінки.
Дякую всім за допомогу.
Спробуйте target="_top"
<a href="http://example.com" target="_top">
This link will open in same but parent window of iframe.
</a>
"_top"
те саме, що "_parent"
?
<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>