Как запустить jQuery непосредственно на любой странице в браузере? - PullRequest
13 голосов
/ 14 декабря 2011

Существует ли какой-либо программный способ или, возможно, плагин для браузера, который позволяет пользователям произвольно запускать любой jQuery на веб-странице, которая в данный момент загружена в их браузер?

Редактировать

Моя мотивация заключается в том, чтобы иметь возможность заранее тестировать синтаксис и команды jQuery на странице, а затем добавлять их к источнику или предлагать настройки веб-администраторам, со страницами которых я экспериментировал.

Ответы [ 8 ]

22 голосов
/ 14 декабря 2011

Вы можете использовать консоль Chrome, чтобы сделать это.Если вы используете Chrome, щелкните правой кнопкой мыши страницу, затем нажмите «Проверить элемент».Перейдите на вкладку «Консоль» и попробуйте запустить $ === jQuery.Если вы не получили сообщение об ошибке и результат true, у вас есть jQuery.

Если нет, выполните следующее, чтобы добавить jQuery на страницу:

var body = document.getElementsByTagName("body")[0];
var script = document.createElement('script');
script.type = "text/javascript";
script.src = "http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js";
body.appendChild(script);

После выполнения этих команд jQuery должен быть загружен на любую веб-страницу и готов к использованию в консоли :)

Приведенный выше код должен работать для любого браузера с консолью JavaScript.

В качестве альтернативы, существуют пользовательские скрипты (такие как Greasemonkey и FireQuery), которые, если jQuery не включен на страницу, автоматически запускают приведенный выше код для внедрения jQuery, чтобы вам было легко писать сценарии и взламывать другихстраницы.

13 голосов
/ 28 августа 2012

Используется Google CDN, и он дружественный к HTTP, однострочный и упакованный:

(function(){var jQueryVersion="1";var a=document.createElement("script");a.src="//ajax.googleapis.com/ajax/libs/jquery/"+jQueryVersion+"/jquery.js";a.type="text/javascript";document.getElementsByTagName("head")[0].appendChild(a);})()

Вы можете указать версию jQuery, например jQueryVersion="2.0.2".

Все версии перечислены на developers.google.com / speed / library / devguide .

4 голосов
/ 14 декабря 2011

FireQuery - отличное расширение для Firebug, которое может включать в себя jQuery, и оттуда вы сможете использовать jQuery в своей консоли.

"jQuerify: позволяет вставлять jQuery в любую веб-страницу"

2 голосов
/ 08 мая 2013

Для удобства введите (и укажите его присутствие) jQuery в Chrome даже на страницу HTTPS с режимом бесконфликтный Прототип (указывает, присутствует ли на странице и Прототип) Возможно, вы предпочтете расширение jQuerify ( jQuerify для Chrome ), качество которого подтверждено тысячи пользователей за несколько лет опыта .В одной фразе: " Экономьте свое время ".

2 голосов
/ 14 декабря 2011

Я написал букмарклет, который проверяет документ на наличие jQuery, добавляет его в <head>, если он еще не существует, и отображает уведомление (с использованием jQuery), если jQuery был загружен с помощью скрипта или уже присутствует в документ. Просто добавьте этот код в закладки, чтобы получить функциональность:

javascript: (function() 
{
    var body = document.getElementsByTagName("body")[0];
    var head = document.getElementsByTagName("head")[0];
    var el = document.createElement('div');
    el.id = 'jqbkstatusnote';
    el.style.position = 'fixed';
    el.style.top = '10px';
    el.style.left = '10px';
    el.style.textAlign = 'center';
    el.style.color = '#fff';
    el.style.padding = '3px';
    el.style.fontWeight = 'bold';
    el.style.display = 'none';
    el.style.zIndex = '999999999';
    el.style.boxShadow = '0px 0px 0px 1px #fff, 3px 3px 1px rgba(0,0,0,0.5)';
    if (typeof jQuery != 'function')
    {
        var script = document.createElement('script');
        script.type = "text/javascript";
        script.src = "http://code.jquery.com/jquery-latest.min.js";
        head.appendChild(script);
        waitForJQ();        
    }
    else
    {
        el.style.border = '1px solid #522';
        el.style.backgroundColor = '#744';
        el.innerHTML = 'jQuery already exists in this document!';
        body.appendChild(el);
        jQuery('#jqbkstatusnote').fadeIn().delay(1000).fadeOut(function(){jQuery(this).remove();}); 
    }
    function waitForJQ() 
    {
        if (typeof jQuery != 'function')
        {
            window.setTimeout(waitForJQ, 100);
        }
        else
        {
            el.style.border = '1px solid #235';
            el.style.backgroundColor = '#457';
            el.innerHTML = 'jQuery added to document!';
            body.appendChild(el);
            jQuery('#jqbkstatusnote').fadeIn().delay(1000).fadeOut(function(){jQuery(this).remove();});
        }
    }
})();
0 голосов
/ 14 декабря 2011

Проверьте это:

jQuery Bookmarklet Generator http://benalman.com/projects/run-jquery-code-bookmarklet/

0 голосов
/ 14 декабря 2011

Для разработки в Firefox вы можете использовать Firebug с FireQuery .

0 голосов
/ 14 декабря 2011

eval выполняет любую передаваемую вами строку, но если ее использование 'правильное', оспаривается .

eval('$(function() { alert("hello"); }');

покажет предупреждение о готовности документа (при условии, что jQuery получен до вызова eval).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...