Chrome 拡張機能のコンテンツ スクリプトで、特定のサイトの Web ページ上の特定のリンク/ボタンをクリックします。そのために、コンテンツ スクリプトで次のコードを使用します (コンテンツ スクリプトに jQuery を埋め込みます)。
$(css_selector).trigger("click")
これはほとんどのサイトで機能します。
ただし、delta.com、match.com、paypal.com などの特定のサイトでは、要素のクリックをトリガーするこの方法は機能しません。delta.com で、コンテンツ スクリプトでトリガーしようとすると、次の例外がスローされます。
Error: An attempt was made to reference a Node in a context where it does not exist.
Error: NotFoundError: DOM Exception 8
奇妙なことに、delta.com で javascript コンソールを開き、jQuery を含めて、同じクリック トリガー コード スニペットを試行すると、機能します。
match.com と paypal.com では、コンテンツ スクリプトでトリガーが機能せず、エラーは発生しません。delta.com で行ったように、javascript コンソールから「クリック」イベントをトリガーすることさえできません。
手動でマウス クリックを使用すると、3 つのサイトすべてですべて正常に動作します。したがって、mousedown()、mouseup() を使用してシミュレートしようとしましたが、それも機能しませんでした。
これらのサイトの JavaScript がハイジャックしてイベントを無視しているため、これは問題のようです。これらのサイトからコードを読み取って何が起こっているのかを確認しようとしましたが、コードが多すぎました。
ここで何が起こっているのか、それを修正する方法について何か知っている人はいますか?