jQuery iframe access работает только в первый раз в Firefox - PullRequest
1 голос
/ 24 марта 2011

Я использую jQuery и Ruby On Rails. У меня есть вызов ajax $.get(), который отображает кусок HTML, содержащий iframe

Я хочу изменить iframe, чтобы ссылки <a> открывались в новом окне.

Для этого я добавил onload к определению iframe:

<iframe id="iframe_message_<%= message.id %>" class="iframe_message" name ="iframe_message_<%=  message.id %>" width="100%" frameborder="0" src="<%= message.attachments.body_html.first.document.url %>"  onLoad="autoResize('iframe_message_<%= message.id %>');">

функция autoResize определена в html, отрисованном вызовом ajax, и содержит:

$(".iframe_message").ready(function () { 
    $('a', frames[id].document).attr('target','_blank');
});

Это нормально работает в IE, Safari, но у меня есть проблема с Firefox, когда он работает при первом вызове $.get() щелчком мыши, но не при следующем щелчке (теги <a> не изменяются).

Я подумал о проблеме кэширования и заменил $.get() на $.ajax() на cache:true, но у меня все еще такое же поведение.

Есть идеи, в чем может быть проблема?

Ответы [ 2 ]

0 голосов
/ 26 марта 2011

Я зашел на сайт jQuery и посмотрел описание .content и мой "рабочий" код

$("#"+id).contents().find("a").attr('target','_blank');

где "#"+id - идентификатор моего iframe.

0 голосов
/ 24 марта 2011

Трудно сказать по вашему описанию, но ваш jquery может потребоваться вызвать изнутри iframe. Думайте о фрейме как об отдельной веб-странице.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...