获取动态Iframe的内容

时间:2013-05-22 17:53:43

标签: javascript jquery iframe 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);

我尝试了第1行和第2行以及time的警报,看看我是否真的抓住了数据。虽然我不是。基本上我想做的是获取最后一条消息.data-and-time并使用setInterval得到相同的东西。

如果他们不同做某事。

这是我相信我的代码将在获取数据后设置的方式

 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();
     } 

有关从iframe获取数据的任何建议吗?

还试过=

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

我得到的1是正确的

然后我试了

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

哪个成为[object Object]

工作代码=

   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存储它然后比较它们?

1 个答案:

答案 0 :(得分:0)

也许这是一场竞争条件。在您尝试遍历DOM时,您的iFrame是否可能未完全加载?试一试:

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