2013-05-22 3 views
2

동적으로 생성 된 Iframe (동일한 도메인)의 콘텐츠를 가져 오려고합니다. 나는 이것을 지금까지 가지고있다. 동적 Iframe의 콘텐츠 가져 오기

var frame = $('#avacweb_chat iframe'); 
var time = $('.date-and-time' , frame.contents()).last().attr('title'); 
var getTime = setInterval(function() { 
    var newTime = $('.date-and-time , frame.contents()').last().attr('title'); 
},500); 

는 내가 실제로 데이터를 잡는 경우 볼 time의 경고와 함께 라인 1과 2를 시도했다. 나는 아니지만. 기본적으로 내가하고 싶은 것은 마지막 메시지 인 .data-and-time을 얻고 setInterval을 사용하여 같은 것을 얻는다.

다른 경우 수행하십시오.

이 내가 iframe이 데이터를 잡아에 데이터

var frame = $('#avacweb_chat iframe'); 
var time = $('.date-and-time' , frame.contents()).last().attr('title'); 
var getTime = setInterval(function() { 
    var newTime = $('.date-and-time , frame.contents()').last().attr('title'); 
},500); 
    if(time === newTime) { 
     alert(); 
    } 

어떤 제안을 일단 내 코드가 설치 될 것으로 예상 어떻게?

또한 = 내가 [object Object]

작업 코드된다

var frame = $('#avacweb_chat iframe'); 
var time = $(frame).contents($('.date-and-time').attr('title')); 
alert(time); 

시도이어서

올 1을 얻을

var frame = $('#avacweb_chat iframe'); 
var time = $(frame).contents($('.date-and-time')); 
alert(time.length); 

=

시도
var frame = $('#avacweb_chat iframe'); 
    var time = $('.date-and-time' , frame.contents()).last().attr('title'); 
    var newTime = setInterval(function() { 
    var newT = $('.date-and-time' , frame.contents()).last().attr('title'); 
    },500); 
    if(time !== newT) { 
     alert('New Message'); 
    } 

이제 내 질문에 어떻게 newTime을 저장하고 비교할 것인가?

+0

무엇이', frame.contents() ')'.. 유효한 셀렉터가 아닌 것처럼 보입니다! –

+0

도메인에 iframe src가 있습니까? 왜냐하면 같은 오리진 정책이 하루를 망칠 지경이기 때문입니다. 편집 : 방금 상단에 동일한 도메인 말했다. –

+0

같은 원산지 예;) 및 Sushanth iframe에서 데이터를 가져 오는 방법에 대한 다른 질문을 읽었으며 그렇게한다고 말하면서, 그 이유는 무엇입니까?이 잘못입니까? – EasyBB

답변

0

어쩌면 경쟁 조건 일 수 있습니다. DOM을 트래버스하려고 할 때 iFrame이 완전히로드되지 않았을 가능성이 있습니까? 이 사진을주세요 :

var frame = $('#avacweb_chat iframe'), 
    newTime; 
frame.on('load', function(){ 
    newTime = frame.contents().find('.date-and-time').attr('title'); 
}); 
alert(newTime); 
+0

이것은 AJAX 요청이 맞습니까? 우리는 필요가 없어야합니다. 콘솔에서 디버깅 중이기 때문에 페이지가로드됩니다. 단단한 콘솔 테스트에 코드를 배치하지 않았습니다. 그래서 이것은 문제가되지 않을 것입니다. – EasyBB

+0

업데이트 된 코드를 확인하십시오. 지금이 문제를 해결했습니다. 단지 비교해야합니다. – EasyBB

+0

네, 맞아요. .load() 메소드의 새로운 구현은 서버에서 데이터를 검색하기위한 것입니다.jQuery 1.8에서 평가 절하되었음을 알지 못했습니다. 내가 의미했던 것은 아마도 iFrame이 아무것도로드하려고 시도하기 전에 '로드'이벤트를 바인딩하여로드 할 때까지 기다려야한다는 것입니다. 나는 setInterval을 사용하는 방법을 모으고있다. 이전 답변을 다시 살펴보십시오. 내가 수정 한 내용으로 업데이트했습니다. – aleksblago