Как добавить jquery на любую веб-страницу
Есть ли способ вставить jQuery на любую страницу, как с javascript (с URL-адреса).
с javascript мы делаем это
javascript:alert("b");
Я пробовал это, но я не знаю, почему он не работает
javascript:var x = document.getElementsByTagName("head")[0];
var y = document.createElement("script");
y.src = "http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js";
x.appendChild(y);
var a = document.getElementsByTagName("body")[0];
var b = document.createElement("script");
b.innerHTML = "$('p').css('border','3px solid red')"
a.appendChild(b);
Ответы
Ответ 1
Это код букмарклета для ввода jquery на любой веб-странице:
javascript:(function() {
function l(u, i) {
var d = document;
if (!d.getElementById(i)) {
var s = d.createElement('script');
s.src = u;
s.id = i;
d.body.appendChild(s);
}
}
l('//code.jquery.com/jquery-3.2.1.min.js', 'jquery')
})();
Update:
Я удалил http: часть из URL-адреса за комментарий @Monkpit, что очень важно и сэкономит массу проблем.
Ответ 2
Поскольку вы загружаете jQuery асинхронно, переменная jQuery
недоступна сразу. Это означает, что вы не можете использовать jQuery на следующей строке; вам нужно подождать, пока браузер загрузит jQuery и выполнит его.
Решение состоит в использовании одного из следующих методов:
- использовать задержку (предположим, что script загружается через х секунд)
- использовать опрос (отметьте
typeof jQuery === "function"
каждые x миллисекунд)
- использовать параметр обратного вызова (добавить строку запроса, например
?callback=scriptloaded
, требуется поддержка на стороне сервера)
- использовать script элемент
onload
событие, как описано ниже
function injectScriptAndUse() {
var head = document.getElementsByTagName("head")[0];
var script = document.createElement("script");
script.src = "//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js";
script.onload = function() {
$("p").css("border", "3px solid red");
};
head.appendChild(script);
}
<p>Paragraph</p>
<button onclick="injectScriptAndUse();">Click to load jQuery and change style of the paragraph</button>
Ответ 3
Вы забыли точку с запятой в строке 8. Это код без ошибок:
javascript:var x = document.getElementsByTagName("head")[0];
var y = document.createElement("script");
y.src = "http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js";
x.appendChild(y);
var a = document.getElementsByTagName("body")[0];
var b = document.createElement("script");
b.innerHTML = "$('p').css('border','3px solid red')";
a.appendChild(b);
Вы можете добавить jQuery в Chrome, разместив его как закладку. Просто скопируйте приведенный выше код, создайте новую закладку на случайном веб-сайте. Щелкните правой кнопкой мыши по закладке и выберите "Изменить", вставьте код в поле URL и выберите "Сохранить". Когда вы нажмете на закладку, будет введена jQuery script.
-Lucas