Object.Watch
とは両方とも現在非推奨になっていることに注意してくださいObject.Observe
(2018年6月現在)。
オブジェクトまたは変数の変更を監視する簡単な方法を探していましたがObject.watch()
、Mozillaブラウザーではサポートされていますが、IEではサポートされていないことがわかりました。それで私は誰かが何らかの同等のものを書いたかどうかを確かめるために周りを探し始めました。
私が見つけたのはjQueryプラグインだけですが、それが最善の方法かどうかはわかりません。私は確かにほとんどのプロジェクトでjQueryを使用しているので、jQueryの側面については心配していません...
とにかく、質問:誰かがそのjQueryプラグインの実用的な例を見せてもらえますか?私はそれを機能させるのに問題があります...
または、クロスブラウザで機能するより良い代替案を知っている人はいますか?
回答後に更新:
回答ありがとうございます!ここに投稿されたコードを試してみました: http ://webreflection.blogspot.com/2009/01/internet-explorer-object-watch.html
しかし、IEで動作させることができなかったようです。以下のコードはFirefoxでは正常に機能しますが、IEでは何も機能しません。watcher.status
Firefoxでは、変更されるたびにdocument.write()
inwatcher.watch()
が呼び出され、ページに出力が表示されます。IEでは、これは発生しませんが、最後の呼び出しで正しい値が表示されるため(IEとFFの両方で)watcher.status
、値が更新されていることがわかります。document.write()
しかし、コールバック関数が呼び出されない場合、それは一種の無意味です... :)
私は何かが足りないのですか?
var options = {'status': 'no status'},
watcher = createWatcher(options);
watcher.watch("status", function(prop, oldValue, newValue) {
document.write("old: " + oldValue + ", new: " + newValue + "<br>");
return newValue;
});
watcher.status = 'asdf';
watcher.status = '1234';
document.write(watcher.status + "<br>");