広告をブロックするプログラムを作成しています。私はthisページから広告サーバーのリストを見つけました。私の質問:javascriptを使用してウェブサイトのそのページからこれらの広告サーバーを検索することは可能ですか?拡張機能用のコードが必要です。javascriptの広告サーバーのリストを含むテキストファイルを検索する
答えて
あなたはこのようなものを使用することができます。
var sites = ['site1', 'site2', '...'],
sites_len = sites.length;
var els = document.getElementsByTagName('*');
for (var i = 0, len = els.length; i < len; i++) {
var attr = "";
switch (els[i].tagName.toLowerCase()) {
case 'iframe':
case 'script':
case 'img':
attr = 'src';
break;
case 'link':
case 'a':
attr = 'href';
break
default:
continue;
}
var attr_val = els[i].getAttribute(attr);
for (var j = 0; j < sites_len; j++)
if (sites[j].indexOf(attr_val) > -1)
els[i].parentNode.reamoveChild(els[i]);
}
デフォルトでは、WebページはJavaScriptの別のWebページのコンテンツにアクセスできません。これはcross-origin HTTP requestとして知られています。ウェブサイトでは、さまざまなウェブサイトがHTTPヘッダーAccess-Control-Allow-Origin
を使用してコンテンツにアクセスできるようにすることができますが、特にあなたのページではそうしていません。
あなたがあなたの代わりに、ブラウザの拡張機能を開発したりcrossorigin.meのようなプロキシを使用することができます先に行くとあなたがXMLHttpRequest cannot load https://pgl.yoyo.org/as/serverlist.php?hostformat=nohtml&showintro=1&startdate%5Bday%5D=&startdate%5Bmonth%5D=&startdate%5Byear%5D=. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.
は、この制限を回避するためにエラーが発生しますしよう。
これは実施例である:
function loadAdServers(callback) {
const url = 'https://crossorigin.me/https://pgl.yoyo.org/as/serverlist.php?hostformat=nohtml&showintro=1&startdate%5Bday%5D=&startdate%5Bmonth%5D=&startdate%5Byear%5D=';
const request = new XMLHttpRequest();
request.open('GET', url);
request.addEventListener('load', function() {
callback(request.response.split('\n').filter(x => x));
});
request.send();
}
function removeElement(element) {
if (element.parentElement) {
element.parentElement.removeChild(element);
}
}
function removeAdElements(adServers) {
for (const img of document.querySelectorAll('img')) {
for (const adServer of adServers) {
if (img.src.indexOf(adServer) >= 0) {
removeElement(img);
}
}
}
for (const a of document.querySelectorAll('a')) {
for (const adServer of adServers) {
if (a.href.indexOf(adServer) >= 0) {
removeElement(a);
}
}
}
}
loadAdServers(removeAdElements);
<img src="http://101order.com/company.logo">
<a href="http://101order.com/">Link</a>
<a href="http://stackoverflow.com">stackoverflow</a>
それはリストをロードし、要素をフィルタリングするためにいくつかの時間がかかります。
あなたの答えに感謝します。しかし、私はこれをエクステンションに入れようとしましたが、機能しませんでした。拡張機能でこれをどのように活用するか考えていますか? – Vagif
申し訳ありませんが、私は以前に拡張機能を行ったことがありません。私はあなたが 'https:// crossorigin.me'を使う必要はないと思うが、私は拡張からDOMにアクセスする方法を知らない。 – Waterscroll
- 1. 検索エンジンから広告URL /広告検索URLを削除する方法
- 2. 検索パラメータのリストを含む値を検索
- 3. Android - カスタムサイズのモバイル広告を含む広告ネットワークはありますか?
- 4. 複数の広告申込情報を含むNetSuiteの保存された検索を作成する
- 5. アプリ更新後のアップル検索広告
- 6. アドワーズ広告のスクリプト - アクセスキーワード検索用語
- 7. Firebase - アップル検索広告キャンペーンの結果を追跡検索広告キャンペーンを実行して
- 8. Amazon広告APIを使用してプロファイル名を含むプロファイルのリストを取得
- 9. c#テキストボックステキストを含むリストから文字列を検索する
- 10. C#に文字を含むリストを検索する
- 11. Googleカスタム検索要素:スタイリング広告
- 12. html javascriptを使用して検索エンジンのトラフィックにGoogle AdSense広告を表示
- 13. Marklogic検索:ハイフン( - )を含む検索語での検索問題
- 14. リストのいずれかを含むNumPy配列行を検索
- 15. リストから文字列を含むデータフレーム内の行を検索
- 16. 広告サーバーのヘッダー入札
- 17. Googleキャスト(プレロール、ミッドロール)に広告(広告)を含める方法
- 18. 幅広い最初の検索バイナリ検索ツリーjavascriptの実装
- 19. オブジェクト、部分一致を含むオブジェクトのPython検索リスト
- 20. 非同期広告を検索するFB広告の結果ページ単位でのAPI
- 21. ブロガーの検索エンジン訪問者に広告を表示
- 22. Google AdSense広告を検索エンジン訪問者のみに表示
- 23. 検索バーを含むナビゲーションバーの作成
- 24. アポストロフィを含むキーワードのMySQL検索
- 25. jsonを含むテキストフィールドでの検索
- 26. DetailViewControllerのprepareForSegueを含む検索バー
- 27. '/' + jqueryを含む 'id'の検索
- 28. 0を含むピクセルの検索
- 29. キーワードリストを含むMSSQLクエリの検索
- 30. Pythonを使用してテキストファイルのリストを検索する
あなたがそれらの広告をブロックする方法についてのより正確なことができますか?タグを削除してリンク、画像、またはiframeを手動で無効にする予定の場合は、htmlのページで基本的な検索と置き換えが行われます。 – Kaddath
@Kaddathはいリンクと画像を無効にします。あなたが本当に良いだろうという答えを与えることができたら、 – Vagif
私の答えにあなたのための実例を加えました。より多くの要素を除外したい場合は、forループをさらに追加することができます。 – Waterscroll