2

我正在尝试获取动态生成的 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 存储它然后比较它们?

4

1 回答 1

0

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

var frame = $('#avacweb_chat iframe'),
    newTime;
frame.on('load', function(){
    newTime = frame.contents().find('.date-and-time').attr('title');
});
alert(newTime);
于 2013-05-23T05:12:13.777 回答