Pertanyaan Apa variabel $ x yang digunakan untuk Chrome?


Beberapa hari yang lalu seorang teman dan saya bermain-main dengan konsol Javascript di Chrome (menggunakan versi yang sedikit lebih lama, tetapi ini dapat diulang dalam build stabil terbaru di OSX dan windows) ketika kami menetapkan string ke variabel $ x .

$x = "hello"

tetapi ketika kami menggemakan nilai $ x, kami diberi kode berikut di konsol:

bound: function (xpath, context)
{
    var doc = (context && context.ownerDocument) || inspectedWindow.document;
    var result = doc.evaluate(xpath, context || doc, null, XPathResult.ANY_TYPE, null);
    switch (result.resultType) {
    case XPathResult.NUMBER_TYPE:
        return result.numberValue;
    case XPathResult.STRING_TYPE:
        return result.stringValue;
    case XPathResult.BOOLEAN_TYPE:
        return result.booleanValue;
    default:
        var nodes = [];
        var node;
        while (node = result.iterateNext())
            nodes.push(node);
        return nodes;
    }
}

Kami mendapat hasil serupa dalam versi stabil dari Safari dan Firefox. Sejauh yang kami tahu, variabel $ x tidak melekat pada objek jendela global.

Apa itu $ x, dan untuk apa itu?


9
2018-05-19 02:52


asal


Jawaban:


Itu adalah fungsi utilitas XPath. Dari baik Firebug manual:

$x(xpath)
  Mengembalikan larik elemen yang cocok dengan ekspresi XPath yang diberikan.

Dan dari manual Chrome bagus:

$x(xpath)
  Mengembalikan larik elemen DOM yang cocok dengan ekspresi XPath yang diberikan.

Itu $x fungsi bukan bagian dari JavaScript itu sendiri, itu hanya utilitas yang tersedia di konsol. Jika Anda mencoba mengakses $x di luar konsol (http://jsfiddle.net/ambiguous/fsewU/), Anda akan mendapatkan ReferenceError kecuali, tentu saja, Anda telah mendefinisikannya sendiri $x suatu tempat.


9
2018-05-19 03:10



Terlihat terkait dengan XPath (XML Path Language) .... Penolong macam ... Saya menemukan tautan yang dapat membantu Anda .. http://userscripts.org/topics/26131 Semoga itu membantu ..


1
2018-05-19 03:16