2014-11-21 3 views
2

Я бесконечно пытался открыть ссылки iframe внутри вкладки родителя или новой вкладки, но я просто не могу заставить их работать. Когда я устанавливаю ссылки на target = "_ parent", ссылки ничего не делают, и когда я устанавливаю ссылки на target = "_ blank", они открываются на новой вкладке, но также не отображаются.Открыть ссылку iFrame на новой вкладке?

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

Вот код IFrame, который я использую:

<iframe src="js/eventsFrame2.php?EventID=2422308" id="frameclass" frameborder="0" scrolling="no" width="100%" height="600"> 

Вот код внутри фрейма:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
<script> 
    function myFunction() { 
    $("a").attr('target','_parent'); 

    } 
$(window).load(myFunction); 

</script> 

<script language="javascript" type="text/javascript"> 
    document.write('<script language="javascript" src="http://tickettransaction.com/?bid=1761&amp;sitenumber=18&amp;tid=ticket_results&amp;evtid=2422308"><\/script>'); 
</script> 
+0

Той же политика происхождения диктует, что вы не можете получить доступ к содержанию в пределах фрейма, является то, что вы видите здесь не только наоборот? Я не уверен. +1 в любом случае. –

+0

@DeeMac Можно ли открывать ссылки из iframe на новой вкладке? – eric212

+0

Я не знаю ... –

ответ

0

Пытались ли вы перезаписать родительскую страницу (содержащую IFRAME) с вашим содержание?

Код внутри фрейма:

<script language="javascript" type="text/javascript"> 
    parent.document.write('<script src="http://tickettransaction.com/?bid=1761&amp;sitenumber=18&amp;tid=ticket_results&amp;evtid=2422308"><\/script>'); 
</script> 
+0

Это могло бы работать, но я бы хотел, чтобы iframe перезаписывал содержимое родительской страницы, когда пользователь нажимает на ссылку. Это возможно? – eric212

+0

Я не уверен, что вы хотите ... Для этого вам нужно перенаправить ответ **, а не действие для щелчка ** на родительскую страницу. –

+0

Вы хоть представляете, как я могу перенаправить ответ? – eric212

0

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

var iframea = $('iframe').contents().find("a"); 

iframea.attr('target','_parent'); 

ВАЖНО: вы всегда должны проверить, что документ со статусом„полный“для работы с этим

var iframe= document.getElementById('iframe_id'); 
//var iframewindow= iframe.contentWindow 
//? iframe.contentWindow : iframe.contentDocument.defaultView; 
var preview = previewFrame.contentDocument || previewFrame.contentWindow.document; 
if (preview.readyState=="complete") 
{ 
    //ok 
} 
else 
{ 
    //perform a recursive call until it is complete 
} 
+0

Аврил, спасибо за ответ. Я добавил ваш первый код выше iframe, однако он все еще не работает. Ссылки, открытые внутри iframe, не открывались на родительской вкладке, которую они все еще открывали в iframe. – eric212

0

Если у вас есть контроль над содержимым внутри iframe, вы можете попробовать использовать тег base.

Пример - На странице, загруженной в фрейм включает базовый тег внутри головы:

<base target="_top"/> 
+0

У меня есть контроль над содержимым внутри iframe, однако базовый тег делает то же самое, что и ссылки, поэтому он не работает. Когда я добавляю базовый тег, ссылки ничего не возвращают. – eric212

+0

@ eric212 Я собрал быстрый и грязный тест здесь: https://dl.dropboxusercontent.com/u/34718810/stackoverflow/iframe-test.html Не делает ли это то, что вы ищете? – lucasjackson

+0

Да, это именно то, чего я пытаюсь выполнить. Однако база не работает по какой-то причине, когда я добавляю ее в свой код. – eric212

Смежные вопросы