Inclure jQuery dans la Console JavaScript
Existe-t-il un moyen facile d'inclure jQuery dans la console JavaScript Chrome pour les sites qui ne l'utilisent pas? Par exemple, sur un site, je voudrais obtenir le nombre de lignes dans une table. Je sais que c'est vraiment facile avec jQuery.
$('element').length;
le site n'utilise pas jQuery. Puis-je l'ajouter depuis la ligne de commande?
18 réponses
Lancez ceci dans la console JavaScript de votre navigateur, puis jQuery devrait être disponible...
var jq = document.createElement('script');
jq.src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js";
document.getElementsByTagName('head')[0].appendChild(jq);
// ... give time for script to load, then type (or see below for non wait option)
jQuery.noConflict();
NOTE: si le site a des scripts qui entrent en conflit avec jQuery (autres libs, etc. tu pourrais quand même avoir des problèmes.
mise à jour:
faire le meilleur mieux, Créer un signet le rend vraiment pratique, faisons-le, et un peu de feedback est génial aussi:
- faites un clic droit sur la barre de signets et cliquez sur ajoutez la Page
- nommez-le comme vous voulez, p.ex. injectez jQuery, et utilisez la ligne suivante pour L'URL:
javascript: (function (e,s){E. src=S;E. onload=function () {jQuery.noConflict (); console.journal de bord injected')};document.head.appendChild(e);})(document.createElement('script'),'//code.jquery.com/jquery-latest.min.js')
ci-dessous est le code formaté:
javascript: (function(e, s) {
e.src = s;
e.onload = function() {
jQuery.noConflict();
console.log('jQuery injected');
};
document.head.appendChild(e);
})(document.createElement('script'), '//code.jquery.com/jquery-latest.min.js')
ici, L'URL officielle jQuery CDN est utilisée, n'hésitez pas à utiliser votre propre version CDN.
exécutez ceci dans votre console
var script = document.createElement('script');script.src = "https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js";document.getElementsByTagName('head')[0].appendChild(script);
il crée nouvelle étiquette de script, le remplit avec jQuery et ajoute à la tête
utilisez le livret jQueryify:
http://marklets.com/jQuerify.aspx
au lieu de coller le code dans les autres réponses, cela en fera un signet cliquable.
Copie http://code.jquery.com/jquery-latest.min.js contenu du fichier et de le coller dans la console. Fonctionne parfaitement.
en ajoutant à la réponse de @jondavidjohn, nous pouvons également le Définir comme un signet avec URL comme code javascript.
Nom: Inclure Jquery
Url:
javascript:var jq = document.createElement('script');jq.src = "//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js";document.getElementsByTagName('head')[0].appendChild(jq); setTimeout(function() {jQuery.noConflict(); console.log('jQuery loaded'); }, 1000);void(0);
et ensuite l'ajouter à la barre D'outils de Chrome ou Firefox de sorte qu'au lieu de coller le script encore et encore, nous pouvons juste cliquer sur le bookmarklet.
je suis un rebelle.
Solution: ne pas utiliser jQuery. jQuery est une bibliothèque pour faire un résumé des résultats des DOM à travers les navigateurs. Puisque vous êtes dans votre propre console, vous n'avez pas besoin de ce genre d'abstraction.
pour votre exemple:
$$('element').length
( $$
est un alias de document.querySelectorAll
dans la console.)
pour tout autre exemple: je suis sûr que je peux trouver n'importe quoi. Surtout si vous utilisez un moderne navigateur (Chrome, FF, Safari, Opera).
de plus, savoir comment fonctionne le DOM ne nuirait à personne, cela augmenterait seulement votre niveau de jQuery (oui, en apprendre plus sur javascript vous rend meilleur à jQuery).
je viens de faire un bookmarklet jQuery 3.2.1 avec la gestion des erreurs (seulement charger si pas déjà chargé, détecter la version si déjà chargé, message d'erreur si Erreur lors du chargement). Testé dans Chrome 27. Il n'y a aucune raison d'utiliser le "vieux" jQuery 1.9.1 sur Chrome browser puisque jQuery 2.0 est compatible API avec 1.9 .
il suffit d'exécuter ce qui suit dans la console de développeur de Chrome ou le glisser-déposer dans votre barre de signet :
javascript:((function(){if(typeof(jQuery)=="undefined"){window.jQuery="loading";var a=document.createElement("script");a.type="text/javascript";a.src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js";a.onload=function(){console.log("jQuery "+jQuery.fn.jquery+" loaded successfully.")};a.onerror=function(){delete jQuery;alert("Error while loading jQuery!")};document.getElementsByTagName("head")[0].appendChild(a)}else{if(typeof(jQuery)=="function"){alert("jQuery ("+jQuery.fn.jquery+") is already loaded!")}else{alert("jQuery is already loading...")}}})())
Le haut en réponse, par jondavidjohn est bonne, mais je voudrais ajuster à un couple de points:
- divers navigateurs émettent un avertissement lors du chargement d'un script de
http
à une page surhttps
. - vient de changer
jquery.com
's protocole àhttps
résultats dans un avertissement si vous l'essayez directement de la barre D'URL du navigateur:This is probably not the site you are looking for!
- j'aime utiliser Le CDN de Google lorsque j'utilise la console pour expérimenter avec des sites Google tels que Gmail.
mon seul problème est que je dois inclure un numéro de version où dans la console je veux vraiment toujours la dernière.
var jq = document.createElement('script');
jq.src = "//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js";
document.getElementsByTagName('head')[0].appendChild(jq);
jQuery.noConflict();
Il est assez facile de le faire manuellement, comme les autres réponses expliquer. Mais il y a aussi le jquerify plug-in .
FWIW, Firebug intègre le include
commande spéciale, et jquery est un alias par défaut:
https://getfirebug.com/wiki/index.php/Include
dans votre cas, vous n'avez qu'à taper:
include("jquery");
Florent
Par cette réponse :
fetch('https://code.jquery.com/jquery-latest.min.js').then(r => r.text()).then(r => eval(r))
Pour une raison que j'ai pour l'exécuter deux fois pour obtenir le '$' (que j'ai à faire avec les autres méthodes), mais il fonctionne.
C'est l'équivalent si votre navigateur n'est pas si moderne:
fetch('http://code.jquery.com/jquery-latest.min.js').then(function(r){return r.text()}).then(function(r){eval(r)})
cette réponse @genèse de réponse, j'ai d'abord essayé le signet version @jondavidjohn, et il ne fonctionne pas, j'ai donc modifier (ajouter à vos favoris):
javascript:(function(){var s = document.createElement('script');s.src = "//code.jquery.com/jquery-2.2.4.min.js";document.getElementsByTagName('head')[0].appendChild(s);console.log('jquery loaded')}());
les mots de la prudence, n'est pas testé sur chrome, mais travaillent dans firefox, et n'est pas testé dans l'environnement de conflit.
l'un des moyens les plus courts serait de copier le code ci-dessous sur la console.
var jquery = document.createElement('script');
jquery.src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js";
document.head.appendChild(jquery);
si vous cherchez à faire ceci pour un userscript, j'ai écrit ceci: http://userscripts.org/scripts/show/123588
il vous permettra d'inclure jQuery, plus UI et tous les plugins que vous voulez. Je l'utilise sur un site qui a 1.5.1 et aucune UI; ce script me donne 1.7.1 à la place, plus UI, et aucun conflit dans Chrome ou FF. Je n'ai pas testé l'Opéra de moi-même, mais d'autres m'ont dit qu'il était là pour eux aussi, donc cela devrait être assez bien un solution multi-navigateur complète userscript, si c'est ce que vous devez faire.
Si vous souhaitez utiliser jQuery fréquemment à partir de la console, vous pouvez facilement écrire un script. Tout d'abord, installez Tampermonkey si vous utilisez Chrome et Greasemonkey si vous utilisez Firefox. Écrivez un userscript simple avec une fonction d'utilisation comme celle-ci:
var scripts = [];
function use(libname) {
var src;
if (scripts.indexOf(libname) == -1) {
switch (libname.toLowerCase()) {
case "jquery":
src = "//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js";
break;
case "angularjs":
src = "//ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js";
break;
}
} else {
console.log("Library already in use.");
return;
}
if (src) {
scripts.append(libname);
var script = document.createElement("script");
script.src = src;
document.body.appendChild(scr);
} else {
console.log("Invalid Library.");
return;
}
}
voici le code alternatif:
javascript:(function() {var url = '//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js'; var n=document.createElement('script');n.setAttribute('language','JavaScript');n.setAttribute('src',url+'?rand='+new Date().getTime());document.body.appendChild(n);})();
qui peut être collé directement dans la Console ou créer une nouvelle page de marque-page (en Chrome droit-cliquez sur la barre de marque-page , ajouter la Page... ) et coller ce code comme URL.
pour vérifier si cela a fonctionné, voir ci-dessous.
avant:
$()
Uncaught TypeError: $ is not a function(…)
après:
$()
[]
document.write(unescape('%3Cscript src="https://code.jquery.com/jquery-3.1.1.min.js"%3E%3C/script%3E’))
vous pouvez changer l'adresse src
.
J'ai fait référence à ReferenceError: ne peut pas trouver la variable: jQuery
solution clé en main:
mettez votre code dans la fonction yourCode_here
. Et empêcher HTML sans étiquette de tête.
(function(head) {
var jq = document.createElement('script');
jq.src = "https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js";
((head && head[0]) || document.firstChild).appendChild(jq);
})(document.getElementsByTagName('head'));
function jQueryReady() {
if (window.jQuery) {
jQuery.noConflict();
yourCode_here(jQuery);
} else {
setTimeout(jQueryReady, 100);
}
}
jQueryReady();
function yourCode_here($) {
console.log("OK");
$("body").html("<h1>Hello world !</h1>");
}