Почему селектор jQuery 'nth-child' не работает внутри GreaseMonkey (0.8)? - PullRequest
1 голос
/ 13 июня 2009

Я полагаю, что jQuery: селектор nth-child не работает внутри GreaseMonkey 0.8. (Внизу приведен быстрый скрипт GM, чтобы проверить это.) Почему это? Это известное ограничение от работы внутри GreaseMonkey? Кто-нибудь может порекомендовать способ обойти это?

Кроме того, почему некоторые (определенно не все) запросы jQuery выполняются на намного медленнее внутри GreaseMonkey, сейчас у меня нет быстрого теста производительности, но я ' мы часто замечали это, когда я создавал довольно сложный сценарий GM, который сильно зависел от GM . Я запускал свой код вне GM, в Firebug, и все было бы быстро, в то время как внутри GM браузер становился на колени. Я знаю, что это расплывчато, но мне было интересно, есть ли какие-то широкие архитектурные причины в GM или jQuery, почему это так.

Спасибо!

// ==UserScript==
// @name          Test of nth-child
// @namespace     http://elzr.com
// @description   nth-child doesn't work in jQuery within GreaseMonkey
// @include       http://en.wikipedia.org/*
// @require       http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js
// @author        Eliazar Parra elzr.com
// ==/UserScript==
//
// For detailed info and screenshots see http://elzr.com/posts/wikipedia-backbars

$(document).ready(function() {
    console.log($('a:nth-child(1)').length)
});

1 Ответ

1 голос
/ 13 июня 2009

Это может быть связано с тем, как GreaseMonkey использует XPCNativeWrapper s для безопасности. Они определенно увеличивают накладные расходы и могут столкнуться с JQuery.

...