@ ডেভিডপস্টিলের নোটিশ অনুসরণ করে আমি আবার পৃষ্ঠার কাঠামোর দিকে তাকালাম। এটি প্রদর্শিত হয় যে টেক্সট বিজ্ঞাপনগুলি div.spon_links
যখন অ্যাডব্লক এজ সক্ষম করা থাকে তখন এর বাইরে সরানো হয় যার পক্ষে প্রকৃতপক্ষে ফিল্টারিংয়ের নিয়ম রয়েছে spon_links
। এটি অ্যাডব্লক এজের দুর্ব্যবহার কিনা বা স্টার্টপেজ থেকে কিছু পাল্টা-অ্যাকশন আমি জানি না।
কাস্টম গ্রিসমোনকি স্ক্রিপ্ট যুক্ত করার চেয়ে সহজ সমাধান রয়েছে — কেবলমাত্র ইউব্লকের জন্য অ্যাডব্লক এজটি অদলবদল করেও সমস্যাটি সমাধান হয়েছে।
আরও তদন্তে, বিজ্ঞাপনগুলি কেবলমাত্র ইউলক সক্ষম থাকলে অদৃশ্য হয়ে যায় যখন অ্যাডব্লক এজ একই সময়ে সম্পূর্ণ অক্ষম থাকে ("সর্বত্র অক্ষম করুন")। এমনকি যদি আমি এটি কেবল স্টার্টপেজের জন্য অক্ষম করি ("স্টার্টপেজ.কম অক্ষম করুন"), সাইটটি বিজ্ঞাপনটি ধারকটির বাইরে নিয়ে যায় spon_links
। আমার ব্যাখ্যাটি হ'ল স্টার্টপেজটি কোনওভাবে আমার অ্যাড-অন পছন্দগুলি অ্যাক্সেস পরিচালনা করে এবং অ্যাডব্লকটি সাধারণত সক্ষম থাকে কিনা তা পরীক্ষা করে । এটা কি কদর্য হতে পারে ?!
গ্রিসমোনকি ডেভিডের পদ্ধতির ব্যবহার করে এবং removeChild
আমি নিম্নলিখিত সমাধান নিয়ে এসেছি যা অ্যাডব্লক এজ ইনস্টল থাকা অবস্থায় এখনও কার্যকর হয়। মনে হচ্ছে পৃষ্ঠাটি লোড করা এবং অ্যাড-ব্লক এড়িয়ে চলা না হওয়া পর্যন্ত অপেক্ষা করতে হবে, যতক্ষণ না আপনি অবশেষে আক্রমণাত্মক উপাদানগুলি সনাক্ত এবং মুছতে পারেন:
// ==UserScript==
// @name startpage/ixquick remove ads
// @namespace startpage.com
// @description Removes ads from startpage/ixquick before they are displayed.
// @include https://startpage.com/*
// @include https://*.startpage.com/*
// @include https://ixquick.com/*
// @include https://*.ixquick.com/*
// @run-at document-end
// @grant none
// @version 2015-09-29
// ==/UserScript==
var fun = function() {
var results = document.getElementById('bottom-result-container');
if (results) {
var ols = results.getElementsByTagName('ol');
for (i = 0; i < ols.length; i++) {
var ol = ols[i];
var ps = ol.getElementsByTagName('p');
for (j = 0; j < ps.length; j++) {
var p = ps[j];
if (p.className == 'head2') {
var spans = p.getElementsByTagName('span');
for (k = 0; k < spans.length; k++) {
if (spans[k].innerHTML.contains("Ads related to")) {
ol.innerHTML = '';
}
}
}
}
}
}
};
setTimeout(fun, 1);
(দুঃখিত, আমার জাভাস্ক্রিপ্টটি কিছুটা মরিচা, jQuery এর সাথে সম্ভবত সহজ।