2012-10-05 35 views
0

我怎麼能提醒用戶,如果有對象字段中的任何改變如何提醒用戶,當有物體場內變化

i''m試圖檢測對象

內對這個div的變化

如果是正常的代碼會是這樣:

<div id="HeaderNewMessageIcon" class="BrosixContactNewMessage" style="display:none;"> 
<a href="javascript:;" class="HeaderNewMessageIcon" title="Unread messages"></a> 
</div> 

但如果有變化,它會是這樣的:

<div id="HeaderNewMessageIcon" class="BrosixContactNewMessage" style="display: block; "> 
<a href="javascript:;" class="HeaderNewMessageIcon" title="Unread messages: 1"></a> 
</div> 

我想提醒用戶,如果對象內部發生了變化,無論是通過警報還是使用圖像。

有沒有什麼辦法可以實現這個目標?

另一件事,我沒有訪問對象內的代碼,我只能查看它,但不能編輯它。

+0

誰或者什麼改變了'div'保存的屬性? – Bergi

+0

來自另一個用戶的消息 – telexper

+0

javascript但它的服務器端 – telexper

回答

0

我相信必須有一些JavaScript代碼來改變你的html,你可以從那裏調用你的方法。用其他方法你可以使用setInterval。您可以使用jQuery插件Mutation Events plugin for jQuery。看到thread

var a = document.getElementsByClassName('HeaderNewMessageIcon')[0]; 
var oldTitle = a.title; 
setInterval(function(){ 
    if(a.title !== oldTitle){ 
      alert("Title change"); 
     oldTitle = a.title; 
    } 
},100); 

jsfiddle

0

你必須檢測時的變化throught用戶交互,例如點擊,鼠標懸停,鼠標按下,等等,那麼你可以將一個函數來看看它的屬性或任何內它改變。

//detect inputs change 
$('#HeaderNewMessageIcon').find(':input').change(function(){ alert(...)}); 

//detect attributes change 
$('#HeaderNewMessageIcon').click(function(){ 
    detectChange(this); 
}); 

至於detectChange工作,則必須在頁面剛剛加載

var attrs = $('#HeaderNewMessageIcon').get(0).attributes; 

function detectChange(obj){ 
    //pseudo-code, you need to find a function on the web to commpare 2 objetcs 
    if (obj.attributes === attrs){ 
     alert(...); 
    } 

    //the same comparison for the children elements $(obj).children() 
}