最新の Chrome ブラウザ用のユーザー スクリプトを作成しました。ロード後にスクリプトがページの変更されたコンテンツを取得できないようです (たとえば、ページがロードされた後、[sth?] をクリックすると埋め込みウィンドウがポップアップ表示されました)。
を使用window.setTimeout()
しても、 を介してタイマー コールバックで更新されたコンテンツを取得できませんdocument.getElementById()
。ページを調べたところ、popup 要素が DOM に存在することがわかりました。
これはユーザー スクリプトの制限ですか? または、ユーザースクリプトで更新を取得するために他の方法を使用できますか?
更新:DOMSubtreemodified
提案どおりにイベント
を試しました。しかし、動作はまだ奇妙です。
my.safaribooksonline.com のユーザースクリプトに、JavaScript を 1 行だけ追加しました。
document.addEventListener("DOMSubtreeModified", function () {
alert(eval('typeof OpenSignInPopup')); });
しかし、アラート ボックスには、評価結果として「未定義」と表示されOpenSignInPopup
ます。しかし、同じページのスクリプト コンソールでアラート ステートメントを同時に実行し、結果を「関数」として表示することができます。
この関数は、ユーザー スクリプトが最初に実行されたときに読み込まれませんでした。では、ユーザースクリプトでどのように使用できますか?