javascript - network - inspector google chrome
La función $ x() no está definida dentro de una extensión de Chrome, script de contenido (1)
$x("//a[contains(@href,''.jpg'')]");
funciona como se esperaba desde el símbolo del sistema de las herramientas del desarrollador. Pero, cuando en el script de contenido de una extensión obtengo un '' $x is not defined
''.
¿Por qué esto no está disponible en un script de contenido o hay una forma especial de acceder a él dentro de un script de contenido / extensión de Chrome?
Estoy usando Chrome 22 en Debian.
$x()
no es parte del entorno de tiempo de ejecución de una página web o script de contenido. Es una herramienta que forma parte de la API de línea de comandos para DevTools de Chrome .
Para usar XPath en una secuencia de comandos de contenido, debe hacerlo de la manera normal, el acceso directo conveniente de DevTools no está disponible.
Tu código se vería así:
var jpgLinks = document.evaluate (
"//a[contains(@href,''.jpg'')]",
document,
null,
XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,
null
);
var numLinks = jpgLinks.snapshotLength;
for (var J = 0; J < numLinks; ++J) {
var thisLink = jpgLinks.snapshotItem (J);
console.log ("Link ", J, " = ", thisLink);
}
- que es el tipo de cosas que $x()
estaba haciendo por ti, detrás de las escenas.
Mientras lo hace, considere cambiar a selectores de CSS . Entonces la misma funcionalidad es:
var jpgLinks = document.querySelectorAll ("a[href$=''.jpg'']");
var numLinks = jpgLinks.length;
for (var J = 0; J < numLinks; ++J) {
var thisLink = jpgLinks[J];
console.log ("Link ", J, " = ", thisLink);
}
- que es mucho más aceptable en mi libro.