【问题标题】:how to alert user for div changes inside an OBJECT如何提醒用户注意 OBJECT 中的 div 更改
【发布时间】:2012-09-26 13:12:07
【问题描述】:

如果 div 内部发生变化,或者任何子 div 内容发生变化,我想提醒用户,

我要检测的 div 位于对象内部!

这是我的代码:

<object type="text/html" data="https://secure.brosix.com/webclient/?nid " style="width:710px;height:555px; border:none;">
</object> 

<script>
$('#BrosixChatReceive').bind('contentchanged', function() {
  // do something after the div content has changed
  alert('woo');
});

$('#BrosixChatReceive').trigger('contentchanged');
</script>

“无变化”对象内的代码

<div class="BrosixChatReceive" id="BrosixChatReceive" style="width: 344px; height: 476px; "></div>

这是从对象内部的 div 进行更改时的代码:

<div class="BrosixChatReceive" id="BrosixChatReceive" style="width: 344px; height: 476px; ">

<div class="BrosixChatWith" id="chatwith-85905" style="display: block; ">
<div class="BrosixChatItemOther"><div class="BrosixChatItemTime">18:34:36</div>
<div class="BrosixContactUsername" style="font-weight:bold;">person1</div>
<div class="BrosixChatMessage">message 1</div>
</div>
<div class="BrosixChatItemOther"><div class="BrosixChatItemTime">18:36:02</div>
<div class="BrosixContactUsername" style="font-weight:bold;">person1</div>
<div class="BrosixChatMessage">message 2</div>
</div>
<div class="BrosixChatItemOther"><div class="BrosixChatItemTime">18:36:54</div>
<div class="BrosixContactUsername" style="font-weight:bold;">person1</div>
<div class="BrosixChatMessage">message 3</div>
</div>
</div>
<div class="BrosixChatWith" id="chatwith-91218" style="display: none; ">
<div class="BrosixChatItemOther"><div class="BrosixChatItemTime">18:35:07</div>
<div class="BrosixContactUsername" style="font-weight:bold;">person2</div>
<div class="BrosixChatMessage">message 1</div>
</div>
</div>

</div>

有什么方法可以检测到这种变化,并在发生这种变化时提醒用户?

“我也无法更改 OBJECT 内的网页代码”

所以这必须在不编辑对象内容的情况下完成。

【问题讨论】:

  • 此内容如何变化?
  • 通过用户输入就像一个聊天框
  • 难道不是一些 javascript 直接将用户输入放在那些 div 中吗?
  • 这是另一个网页上的应用程序,我无法编辑它

标签: javascript object html alert children


【解决方案1】:

这是一个类似于我在another answer 中提出的功能:

function survey(selector, callback) {
   var input = $(selector);
   var oldvalue = input.html();
   setInterval(function(){
      if (input.html()!=oldvalue){
          oldvalue = input.html();
          callback();
      }
   }, 100);
}

survey('#yourdivid', function(){console.log('changed')}); 

每次更改 id 为 yourdivid 的 div 时,都会调用给 survey 的回调。每 100 毫秒检查一次。

但更好的解决方案通常是更改脚本修改 div 以直接获取警报。

当你提到“另一个网页”时,我必须警告你,如果内容来自另一个域,这将不起作用。

【讨论】:

  • 为什么?它是否来自另一个域(未授权通过 CORS 标头进行间谍活动)?
猜你喜欢
  • 2017-06-27
  • 1970-01-01
  • 2012-11-10
  • 1970-01-01
  • 2016-08-26
  • 1970-01-01
  • 1970-01-01
  • 2017-07-13
  • 2013-01-28
相关资源
最近更新 更多