Почему jQuery (). Remove () и unbind () не работают в GreaseMonkey? - PullRequest
1 голос
/ 18 марта 2011

Я пытаюсь использовать методы jQuery().remove() и jQuery().unbind (и аналогичные функции) в скрипте greaseMonkey, но он не работает. В FireBug работают точно такие же вызовы. Я предполагаю, что это как-то связано с песочницей GM и тем, что сфера полностью отключена.

Я пытался использовать unsafeWindow.jQuery и даже объявил window = unsafeWindow, но это не помогло.

Все остальные вещи jQuery (например, clone append) работают отлично.

У кого-нибудь есть мысли или предложения по этому поводу?

РЕДАКТИРОВАТЬ: код:

(function($) {
    var changeURLs = function() {
        var window = unsafeWindow;
            $('.link-results li').each(function() {
                var $a = $(this).find('a'), directUrl;
                if ($a.hasClass('redirect')) return;
                $a.unbind('click'); //!! Not working
                if (/sidereel\.com/.test($a[1].href)) { // Megavideo like link
                    $.get($a[1].href, function(data) {
                        directUrl = $(data).find('.play-link')[0].innerHTML;
                        $a[1].href = $a[2].href = directUrl;
                        $a.each(function() {
                            unsafeWindow.console.log( $(this).remove() ); //!! Not working
                        });
                    });
                } else { // Sponsered link
                    $a[2].href = $a[1].href;
                }
                $a.addClass('redirect');
            });
        },
        $thickBox = $('.ui-dialog-content');
    if ($thickBox.length) $thickBox.dialog('close')

    changeURLs();
    jQuery('.link-results-container').bind('DOMNodeInserted', changeURLs);
})(unsafeWindow.jQuery);

1 Ответ

0 голосов
/ 29 марта 2011

Вот еще один, чтобы загрузить JQuery из Google, если его еще нет на странице: http://joanpiedra.com/jquery/greasemonkey/

...