2012-05-16 3 views
-1

Я пытаюсь удалить обработчик события keydown, добавленный плагином «скроллер» на страницу.Greasemonkey: удалить обработчик событий, добавленный плагином

страница это: http://www.nacion.com/2012-05-15/Mundo/nobel-de-economia-cree-posible-pronta-desaparicion-de-zona-euro-.aspx

В основном я хочу, чтобы, когда я использую вниз/вверх стрелки на клавиатуре страницы идет вниз вместо маленькой коробки, где применяется плагин. Я попытался получить экземпляр плагина, но по какой-то причине он недоступен после загрузки страницы.

Другим подходом было бы заставить загрузку greasemonkey загружаться до того, как скрипт со страницы будет загружен (поэтому я могу удалить его с помощью greasemonkey), но я не знаю, возможно ли это.

Любая идея будет оценена по достоинству.

Благодаря

ответ

0

Эта страница, кажется, использует пользовательский или багги реализацию jQueryTOOLS Scrollable.

паршивый опыт UI вызван этот код на главной странице:

<script> 
    // initialize scrollable para ademas 
    jQuery(document).ready(function() { 
     $("div.scroller_ademas").scrollable({ 
      size: 1, 
      items: '#ademasaldea', 
      vertical: true 
     }).mousewheel({ 
      items: '#ademasaldea' 
     }); 
    }); 
</script> 

И все unbind() вызовы и keyboard = false наборы, которые должны работать, не влияют на клавиатуре угнать!

К счастью, оскорбительный <script> довольно атомный, поэтому Greasemonkey может блокировать это нарушение JS, не затрагивая ничего другого.

Заблокируйте JS, используя the stunningly-brilliant checkForBadJavascripts utility.

Как так:

// ==UserScript== 
// @name  _Block scrollable that's run amuck. 
// @namespace _pc 
// @include  http://www.nacion.com/* 
// @run-at  document-start 
// @require  https://gist.github.com/raw/2620135/checkForBadJavascripts.js 
// ==/UserScript== 

checkForBadJavascripts ([ 
    [false, /items\:\s+'\#ademasaldea'/, null] 
]); 

Обратите внимание, что это также будет остановить «Además ан El Mundo» коробка от того, прокручивать, но вы можете исправить, добавив,

window.addEventListener ("load", function() { 
    GM_addStyle ('#ademasaldea { height: 100%; overflow-y: scroll; }'); 
}, false); 

сценарию.

+0

Ничего себе, спасибо большое за это. Я рад, что не был слишком далеко: P никогда бы не нашел checkForBadJavascripts самостоятельно. – willvv

+0

На самом деле, я поблагодарил, прежде чем тестировать его, это странно, но это не блокирует скрипт. Поведение сохраняется. – willvv

+0

Я сам тестировал сценарий, и он работает. Вы используете Firefox и Greasemonkey, верно? Какие версии каждого? У вас есть или требуется логин, чтобы увидеть проблему? –

Смежные вопросы