前提・実現したいこと
Chrome拡張機能で、webページ中の特定のclassを持つ部分の削除をしたいです。
そこでgetElementsByClassNameでclassを読み取ったのですが、読み取ったhtmlCollectionを表示させると中身が入っているのにその要素数は0と表示されます。どのように解決したらいいでしょうか。
発生している問題・エラーメッセージ
テキストでうまく表示できないので画像にします。
画像中のcontent1.jsが自分の作ったコードの結果になります。
該当のソースコード
javascript
1let elements = document.getElementsByClassName("mhy-article-card"); 2let num = elements.length; 3 4console.log(elements); 5console.log("entered = " + num); 6 7 8for(let i = 0; i < num; i++){//←nunが0だから機能してない 9 console.log(i); 10 console.log(elements[i]); 11}
manifest
1{ 2 "name": "Sample", 3 "version": "1.0.0", 4 "manifest_version": 2, 5 "description": "Sample Chrome Extension", 6 "content_scripts": [{ 7 "matches": ["https://www.hoyolab.com/home*"], 8 "js": [ 9 "content1.js" 10 ] 11 }] 12}
試したこと
querySelectorAllを使てみましたが、同様にうまくいきませんでした。
Array.prototype.slice.call(elements, 0)で配列にした際は、中身が無くなりました。
・追記
window.addEventListener('load', function() { ソースコードの中身 })というようにロードが終わってからコードを実行するようにしたのですが、それでも解決しませんでした。
補足情報(FW/ツールのバージョンなど)
chromeバージョン :93.0.4577.82(Official Build)
拡張機能はchromeのデベロッパーモードの「パッケージ化されていない拡張機能を読み込む」から使用しています。
回答1件
あなたの回答
tips
プレビュー