2013-03-07 6 views
5

でjavascript関数を削除します。私は削除/無効にしたいである私はHTML</p> <pre><code><script language="javascript" src="javscript.js"></script> </code></pre> <p>、このファイル内のコードの頭の中でのJavaScriptファイルでウェブサイトを訪問するGreasemonkey

// keypress management 
if (document.layers) document.captureEvents(Event.KEYPRESS) 
function update(e) {   
    if (document.all) {    // Explorer 
     if (event.keyCode==13) document.forms[0].submit(); // 13 = ENTER 
     else if (event.keyCode==26) runHelp(hplk);   // 26 = CTRL+Z 
     return; 
    } else {            // mozilla 
     if (e.which==13) document.forms[0].submit();  // 13 = ENTER 
     else if (e.which==26) runHelp(hplk);    // 122 = CTRL+Z  
     return;   
    } 
} 
document.onkeypress=update; 

/Greasemonkeyでこの機能を置き換えてください。

私は結果なしで

unsafeWindow.update = function(){} 

でそれを試してみました! (コンソールにエラーはありません)

この機能を無効にする方法はありますか?

+0

[この質問](http://stackoverflow.com/questions/4064035/greasemonkey-overriding-website-functions)への答えはあなたのために働くかどうかを確認してください。しばらくしてGreaseMonkeyを使用していないのですが、理にかなっているようです。 –

+1

これは以前の質問と同様に、古いGreasemonkeyのFirefox 2でですか? –

+0

私はコードを試して警告( 'TEST')を追加しました。コードは頭の中に作成されますが、それは "テスト"を起動しません – bernte

答えて

8

updateがグローバルな機能であることは明らかではありません。そうでなければ、そのアプローチは機能しません。

しかし、あなたがしてキー押下ハンドラをオーバーライドすることができます:選択的にブロックするための一般的な、ハイパワーな方法について

unsafeWindow.document.onkeypress = function(){}; 



、または交換、(Firefoxの上の)任意のJS、 @run-at document-startthe checkForBadJavascripts functionを使用してください。

// ==UserScript== 
// @name  _Replace select javascript on a page 
// @include  http://YOUR_SERVER.COM/YOUR_PATH/* 
// @require  https://gist.github.com/raw/2620135/checkForBadJavascripts.js 
// @run-at  document-start 
// @grant  GM_addStyle 
// ==/UserScript== 
/*- The @grant directive is needed to work around a design change 
    introduced in GM 1.0. It restores the sandbox. 
*/ 

checkForBadJavascripts ([ 
    [ false, 
     /document\.onkeypress\s*=\s*update/, 
     function() { 
      addJS_Node (myKeypressFunction.toString()); 
      addJS_Node ('document.onkeypress = myKeypressFunction;'); 
     } 
    ] 
]); 


function myKeypressFunction (evt) { 
    /* DO WHATEVER HERE BUT USE NO GREASEMONKEY FUNCTIONS INSIDE 
     THIS FUNCTION. 
    */ 
    console.log ("Keypress function fired."); 
} 

See this answer, for more information on checkForBadJavascripts.

+0

I LOVE YOU BROCK ADAMS:D unsafeWindow.document.onkeypress = function(){};完璧に動作します:Dはこの部分を古いスクリプトに含め、完璧に動作します!私はこの部分が間違いなく完成したことを願っています:D私はこの来週ターミナルでテストしてお知らせします。我々はこの部分を終了し、ビールを飲むことができるよりも.. 2つ:Dは – bernte

+0

ターミナルはインターネット接続がないので、checkForBadJavascriptsを使用することはできません! – bernte

+1

ようこそ。 Stack Overflowの質問は、あなたが取り組んでいるプロジェクトの「一部」についての質問ではないことを覚えておいてください。それらは、単一の、特定のプログラミング問題に関するものです。 –

関連する問題

 関連する問題