コード ```■開発全体の内容 ある事務処理系クラウドサービスに対し、追加入力された内容に問題がある場合にアラートを出させるクローム拡張の機能 ■今回問題が発生した部分 クローム拡張で青線部の子要素の追加を監視する部分 ![青線部の子要素の変更を監視したい](78caee495871d1b228abf303f0c97f09.png) ■実装内容 [参考](http://okakacacao.wpblog.jp/technology/mutation-observer#_8211_subtree) ```javascript content_script.js //変更検出時に実行するコールバック関数を引数に渡し,MutationObserver をインスタンス化する var observer = new MutationObserver(function (MutationRecords, MutationObserver) { alert('Mutated!!'); }); //監視対象のノードと監視方法を指定するオプションを引数に渡して、 //作成したインスタンスの observe() メソッドを実行する observer.observe($('#pres_out_ctg').get(0), { //:12 childList: true, }); console.log('observe is used');
■予想との違い
実装した後、クロームのページをリロードした時点で下記の通りエラーが出ました
content_script.js:12 Uncaught TypeError: Failed to execute 'observe' on 'MutationObserver': parameter 1 is not of type 'Node'.
at content_script.js:12
ページ読み込み時、読み込みの終了よりもエラーがコンソールに出力される方が早いように見えます。
また、下記写真の上側のバー部分などのidは正しく返ってきており、その部分は読み込みの始めの方に完了しています。
](c812c6b0fd5782aa61bf90fb51ced979.png)
manifest.json
json
1{ 2 "name": "DOMstr", 3 "version": "1", 4 "manifest_version": 2, 5 "description": "DOMの変更に対しalert", 6 "icons": { 7 "16" : "images/sample_16.png", 8 "48" : "images/sample_48.png", 9 "128" : "images/sample_128.png" 10 }, 11 "browser_action": { 12 "default_icon": "images/sample_16.png", 13 "default_title": "DOMの変更に対しalert" 14 }, 15 "content_scripts": [{ 16 "matches": ["https://s2.movacal.net/*"], 17 "js": ["jquery-3.3.1.min.js","content_script.js"] 18 }], 19 20 "permissions":[ "notifications"] 21}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/14 09:29
2018/02/14 09:45
2018/02/14 09:48
2018/02/14 09:50
2018/02/14 09:51