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では何も実行しません。Firefoxでは、watcher.status
変更されるたびにdocument.write()
in watcher.watch()
が呼び出され、ページに出力が表示されます。IEではそれは起こりませんがwatcher.status
、最後のdocument.write()
呼び出しで正しい値が表示されるため(IEとFFの両方で)、値が更新されていることがわかります。しかし、コールバック関数が呼び出されない場合、それは一種の無意味です... :)
何か不足していますか?
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>");