2017-08-31 9 views
1

Firefoxがadblockerを有効にしているときに、実際のWebコンテンツをポップアップまたはブロックするモデルスクリーン/ページを削除する完全なGreasemonkeyスクリプトです。しかし、それはモデルの画面を削除していない。 Greasemonkeyスクリプトが動作しない

**/

/**

// ==UserScript== 
// @name  test 
// @namespace test 
// @include  * 
// @version  1 
// @grant  none 
// ==/UserScript== 


if (document.getElementsByClassName('tmask')[0]) { 
    document.getElementsByClassName('tmask')[0].style.display = 'none'; 
    document.getElementsByClassName('tbox')[0].style.display = 'none'; 
} 

しかしときモーダルページのポップアップと私はこれらの行を "Web開発者> Webコンソール" を開き、実行すると

if (document.getElementsByClassName('tmask')[0]) { 
    document.getElementsByClassName('tmask')[0].style.display = 'none'; 
    document.getElementsByClassName('tbox')[0].style.display = 'none'; 
} 

つまり、モーダルウェブページが削除され、ウェブコンテンツを読むことができます。

何か助けていただければ幸いです。さらに情報が必要な場合は教えてください。

答えて

0
var interval; 

function go() 
{ 
    if (document.getElementsByClassName('tmask')[0]) { 
     document.getElementsByClassName('tmask')[0].style.display = 'none'; 
     document.getElementsByClassName('tbox')[0].style.display = 'none'; 
     clearInterval(interval); 
    } 
} 

window.addEventListener('load', function(event) 
{ 
    if(window.top == window.self) //don't run in frames 
    { 
     interval = setInterval(go, 500); 
    } 
}, false); 

私の推測では、「TMASK」は実際に存在する前にそのため、あなたのスクリプトが実行され、ページがロードされるのをあなたが待っていないです。

+0

お返事ありがとうございます。 私はそれがうまくいかないことを試みました。同様のケースはクオラフォーラムで見ることができます...このURL "https://www.quora.com/What-is-the-Landmark-Forum-like-I%E2%80%99ve-heard-it% E2%80%99s-everything-from-a-cult-to-the-most-transformative-experience-ever」を選択し、右サイドバーのURLのいずれかをクリックします。「関連する質問」サインインダイアログのポップアップ。 – user4488573

+0

あなたのリンクが私にとって役に立たないように私はアカウントを持っていません。上記の編集を試してください。ロード後にポップアップが生成された場合は、テストとして1秒遅延します。実行時にタグが存在することを確認しましたか? –

+1

代わりに_setInterval_を使用して要素を定期的に確認し、要素が存在し、関数が実行されたときに間隔をクリアすることを検討したいことがあります。 –

関連する問題