为什么jQuery'nth-child'选择器在GreaseMonkey(0.8)中不起作用?

时间:2009-06-12 20:14:24

标签: javascript jquery greasemonkey

我相信jQuery的:nth-​​child选择器在GreaseMonkey 0.8中不起作用。 (在底部是一个快速GM脚本来测试它。) 为什么是这样? 这是GreaseMonkey内部的一个已知限制吗? 任何人都可以推荐一种解决方法吗?

另外,为什么某些(绝对不是全部)jQuery查询在GreaseMonkey中运行更慢,我现在没有快速的基准测试,但是我经常在构建a pretty complex GM script that relied heavily in 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 个答案:

答案 0 :(得分:1)

这可能与GreaseMonkey如何使用XPCNativeWrapper安全性有关。它们肯定会增加开销,并且可能会碰到JQuery。