0

オブジェクト フィールド内に変更がある場合にユーザーに警告するにはどうすればよいですか

オブジェクト内のこの 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>

アラートまたは画像を使用して、オブジェクト内に変更がある場合にユーザーに警告したい。

これを達成する方法はありますか?

もう1つ、オブジェクト内のコードにはアクセスできません。表示のみできますが、編集はできません。

4

2 に答える 2

0

クリック、マウスオーバー、マウスダウンなどのユーザーインタラクションを通じて変更を検出する必要があります。次に、関数をアタッチして、その属性またはその中の何かが変更されるかどうかを確認できます。

//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()
}
于 2012-10-05T10:19:35.103 に答える
0

そこからメソッドを呼び出すことができるhtmlを変更するJavaScriptコードが必要だと思います。別の方法で setInterval を使用できます。

jQuery プラグインMutation Events plugin for jQueryを使用できます 。スレッドを参照

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

jsfiddle

于 2012-10-05T10:01:55.830 に答える