2011-03-24 3 views
1

jQuery와 Ruby On Rails를 사용하고 있습니다. 내가jQuery iframe 액세스가 Firefox에서 처음으로 작동합니다.

내가 새 창에서 열어 <a> 링크를 확인하기 위해 iframe을 수정하려는은 iframe이 포함 된 HTML의 조각을 렌더링 아약스 호출 $.get() 있습니다.

autoResize 기능이 아약스 호출에 의해 렌더링 된 HTML에 정의 포함되어
<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 %>');"> 

:

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

이 잘 작동이 작업을 수행하려면

나는 iframe이 정의에 온로드를 추가 한 IE에서, 사파리지만 난 처음 클릭 $.get() 마우스 클릭에 의해 호출되지만 다음에 클릭 (아니 <a> 태그가 수정되지 않습니다) 파이어 폭스에 문제가 있습니다.

캐싱 문제로 생각하여 $.get()$.ajax()으로 바꿔 cache:true으로 바꾸었지만 여전히 동일한 문제가 있습니다.

문제가 될 수있는 아이디어가 있으십니까?

답변

0

는 내가 jQuery를 웹 사이트로 가서 .content 설명 내 "작업"코드를 보았다 "#"+id 내 iframe 대응의 ID입니다

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

입니다.

0

설명에서 알기 힘들지 만 iframe 내에서 jquery를 호출해야 할 수 있습니다. iframe을 별도의 웹 페이지로 생각하십시오.

+0

답변 해 주셔서 감사합니다. 내 페이지에로드 될 때까지 iFrame에 액세스 할 수 없어서 자바 스크립트를 넣을 수 없습니다. 그리고 파이어 폭스 – tranquiliste

+0

을 제외한 다른 브라우저에 대한이 작업은 추가 테스트를 수행하고 이상한 일은 iframe의 모든 링크가 첫 번째 호출에서 파이어 폭스와 함께 target = "_ blank"로 수정된다는 것을 의미합니다. iframe이 아닌 iframe 외부의 모든 lin을 수정합니다. – tranquiliste

관련 문제