JavaScriptコンソールにjQueryを含める


772

jQueryを使用しないサイトのChrome JavaScriptコンソールにjQueryを簡単に含める方法はありますか?たとえば、ウェブサイトでテーブルの行数を取得したいとします。これはjQueryを使用すると本当に簡単です。

$('element').length;

このサイトはjQueryを使用していません。コマンドラインから追加できますか?


3
自動化されたアプローチの詳細については、ユーザースクリプトを使用してそれを含めることができます。真剣にこれは5行のユーザースクリプトのようになります:P
rlemon '19年

9
document.getElementById('tableID').rows.length。テーブルにIDがない場合は、DOMエディターを使用してIDを指定します。とんでもないことをするのにjQueryは必要ありません。
Niet the Dark Absol 2013年

これを行うためのChrome
Abhishek Saha

1
cdnまたはローカルからスクリプトタグに追加します。CDNははるかに単純です。
Donato

1
主要なブラウザーの開発ツールのほとんどにデフォルトでjQuery(およびUnderscoreのような他のいくつかの一般的なライブラリ)が含まれていると思いますが、そのドキュメントを見つけることができません。通常はちょうど機能するコンソール(tm)を開いてコンソールを開きます。------また、このアプローチは(今のところ)長い間、何人かの人々によって便利なブックマークレットに組み込まれてきました。私はこれをうまく使いました:learningjquery.com/2009/04/…
ブリチン

回答:


1377

これをブラウザーのJavaScriptコンソールで実行すると、jQueryが使用可能になります...

var jq = document.createElement('script');
jq.src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/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();

注:サイトにjQuery(他のライブラリーなど)と競合するスクリプトがある場合でも、問題が発生する可能性があります。

更新:

最善を尽くしてブックマークを作成すると、とても便利になり、それをやりましょう。少しのフィードバックも素晴らしいです。

  1. ブックマークバーを右クリックし、[ ページの追加 ] クリックします
  2. Inject jQueryなど、好きな名前を付けて、URLに次の行を使用します。

javascript:(function(e、s){e.src = s; e.onload = function(){jQuery.noConflict(); console.log( 'jQuery embedded')}; document.head.appendChild(e); })(document.createElement( 'script')、 '// code.jquery.com/jquery-latest.min.js')

以下はフォーマットされたコードです:

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')

ここでは公式のjQuery CDN URLが使用されています。独自のCDN /バージョンを自由に使用してください。


180
このスニペットは私にはうまくいきませんでした。その理由を理解する時間がありませんでした。ただ、コピーされたcode.jquery.com/jquery-latest.min.jsファイルの内容をコンソールに貼り付けます。完璧に動作します。
RuslanasBalčiūnas12

9
これで、^^のChromeコンソールホットキーが必要になります。私はこのスニペットを使用し続け、それを取得するためにここに戻ってサーフィンします。
クリス・ストリングフェロー

6
@CrisStringfellow-AKAIK作品に開発者スニペット機能があります。確認してchrome:flags、そこにあるかどうかを確認してください。オンにする必要があります。
ocodo 2013年

2
@Slomojo私はあなたのユーモアのセンスを楽しんでいます。うまくいけば、君主が聞いているので、彼らはそのDIY bツリーチャネルをプッシュできます。また、すべての実験がどのように分類されるかが非常に便利である点も特に気に入っています。彼らはハッシュ値でソートしたと思います。
Cris Stringfellow 2013年

2
このシペットに問題がありましたが、こちらのstackoverflow.com/a/8225200/497208でうまくいきました
Jakub M.

227

これをコンソールで実行します

var script = document.createElement('script');script.src = "https://code.jquery.com/jquery-3.4.1.min.js";document.getElementsByTagName('head')[0].appendChild(script);

新しいスクリプトタグを作成し、jQueryを入力して、headに追加します。


これは完全に機能しました、ありがとう!(記録として、「Uncaught TypeError:$ is a function」と表示されていました。これを実行した後、$
selector

5
セキュリティメッセージ(Facebookなど)を受け取った場合は、JavaScriptコンソールでjquery.jsコンテンツをコピーして貼り付けてください。
Thomas Decaux、

1
@genesisで完全に機能します!2017、MS Edgeブラウザ。
エリックHepperle-CodeSlayer2010

これは完璧に機能し、命の恩人です!他の提案よりもはるかにシンプルで簡単です。
エリカサマーズ

85

すべてをコピー:https :
//code.jquery.com/jquery-3.4.1.min.js

そして、それをコンソールに貼り付けます。完璧に動作します。


12
魅力的な作品!また、DOMにスクリプトを追加しません。これは、「コンテンツセキュリティポリシーディレクティブ」が原因で不可能になる場合があります。次の内容の承認された回答を試してみました:次のコンテンツセキュリティポリシーディレクティブに違反しているため、スクリプト ' ajax.googleapis.com/ajax/libs/jquery/1/jquery.js 'のロードを拒否しました: "script-src .. ..
カングル2013

1
まず、$変数があるかどうかを確認します。jQueryでない場合は、jQueryを$ varに保持する必要があります。$ .noConflict():スクリプトタイプの上に呼び出した後
Kangur

私はそれらのどれも私が使用を許可しないだろう。.. 3ライン回答のさまざまな方法を使ってみましたjQuery$。このソリューションのみが機能しました。そして、最近はログコンソールをあまり使わないので、最近は常にコマンド履歴にあるので、初めてコンテンツをコピーした後は、上向き矢印を押して入力するだけで済みます。とてもかっこいい-ありがとう
Gene Bo

スムーズな答え!回答としてあなたのトップコメントを探していました!すごい。
Irf

Web 3.0は相変わらず美しく見えます。
アンダーキャットはモニカを

63

jQueryifyブックレットを使用します。

http://marklets.com/jQuerify.aspx

他の回答にコードをコピーして貼り付ける代わりに、クリック可能なブックマークにします。


4
他の回答もブックマークレットにコピーできます..... URLエンコードして、そのjavascript:前に追加します。
d -_- b

td要素を変更するjQuery呼び出しとは何ですか?それは少しランダムで危険なようです。"td.editselectoption [value = BN]" ...
キンボールロビンソン、

FacebookのContent Security Policy: The page’s settings blocked the loading of a resource at https://code.jquery.com/jquery-latest.min.js (“script-src”).
コメント

30

@jondavidjohnの回答に加えて、URLをJavaScriptコードとしてブックマークとして設定することもできます。

名前: 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);

次に、それをChromeまたはFirefoxのツールバーに追加して、スクリプトを何度も貼り付ける代わりに、ブックマークレットをクリックするだけです。

ブックマークのスクリーンショット


2
2つの改善点:1)スクリプトのロードに時間がかかるため、if(jQuery)...はほとんど常に失敗します。ロードを遅らせるためにsetTimeoutを追加することをお勧めします。2)jquery-latestを使用しないでください。これは実際には最新ではなく、非推奨です(このブログを参照してください。jquery.com/ 2014/07/03 / dont -use-jquery-latest- js
Giuseppe Bertone

jQuery.noConflict();それは私が上でこれをテストしていたランダムサイト上ではない仕事に表示されました。彼らはすでにjQueryを持っていることがわかりましたが、彼らのjQueryには$何らかの理由でショートカットがありません。スクリーンショット:prntscr.com/bdcpdh
Rani Kheir 2016年

22

私は反逆者です。

解決策:jQueryを使用しないでください。jQueryは、ブラウザー間でDOMの矛盾を抽象化するライブラリーです。自分のコンソールにいるので、この種の抽象化は必要ありません。

あなたの例のために:

$$('element').length

$$document.querySelectorAllコンソールののエイリアスです。)

他の例については、私は何かを見つけることができると確信しています。特に、最新のブラウザー(Chrome、FF、Safari、Opera)を使用している場合はそうです。

その上、DOMの仕組みを知っていても誰にも害はありませんが、jQueryのレベルが上がるだけです(そうです、javascriptについてもっと学ぶと、jQueryが上手になります)。


4
フロリアンというアイデアをありがとう。私は、jQueryを使用する誰もがJavaScriptも知っている必要があることに同意します。jQueryのロードは、DOMの不整合を抽象化するだけでなく、時間を大幅に節約できます。そのセレクターエンジンsizzleは、ネイティブのjavascript呼び出しよりもはるかに強力です。のようなものをクエリ$('div.className').children().hasClass('active').filter( function(index) { ... });することは、プレーンなjsでは悪夢になります。
mrtsherman 2012

7
もしかしてdocument.querySelectorAll('div.className .active').filter(function(index) {})?:p
Florian Margaine 2012

6
@FlorianMargaineです[].slice.call( document.querySelectorAll('div.className .active') ).filter...が、そうです、重要な点があります。最新のブラウザーを使用している場合、jQueryがなくてもdomは簡単です。:)
エサイリア2012

5
あなたは反逆者ではなく、代わりに、もっとタイピングする時間を無駄にしたいようです:)
アンダーソンフォルタレザ

1
@DavidWest :1は疑似セレクタではありません。たぶんあなたがしたい:first-childですか?
Florian Margaine、2013

12

エラー処理付きのjQuery 3.2.1ブックマークレットを作成しました(まだ読み込まれていない場合は読み込み、既に読み込まれている場合はバージョンを検出、読み込み中にエラーが発生した場合はエラーメッセージ)。Chrome 27でテスト済み。jQuery2.0は1.9とAPI互換であるため、Chromeブラウザで「古い」jQuery 1.9.1を使用する理由はありません。

Chromeの開発者コンソールで次のコマンドを実行するか、ブックマークバーにドラッグアンドドロップしてください

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...")}}})())

読みやすいソースコードはこちらから入手できます


.jsファイルのURLを更新する必要がありますが、これはうまく機能します。
dsomnus 2014年

これを使用しようとしているWebサイトがカスタムContent-Security-Policyヘッダーを送信している可能性があります。
fnkr

8

jondavidjohnによってトップの答えは、良いですが、私はポイントのカップルに対処するために、それを微調整したいと思います:

  • からhttpページにスクリプトをロードすると、さまざまなブラウザが警告を発しますhttps
  • ブラウザのURLバーから直接試行すると、jquery.comのプロトコルを変更するだけでhttps警告が表示されます。This is probably not the site you are looking for!
  • コンソールを使用してGmailなどのGoogleサイトを実験しているときに、GoogleのCDNを使用したい。

私の唯一の問題は、コンソールで常に最新の情報が欲しいバージョン番号を含める必要があることです。

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();

1
スクリプト ' ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js 'は、次のコンテンツセキュリティポリシーディレクティブに違反しているため、ロードを拒否しました: "script-src 'self' 'unsafe-inline' 「安全でない評価」」。「script-src-elem」は明示的に設定されていないため、「script-src」はフォールバックとして使用されます。
Dimmduh

7

この回答ごと:

fetch('https://code.jquery.com/jquery-latest.min.js').then(r => r.text()).then(r => eval(r))

何らかの理由で、新しい「$」を取得するために2回実行する必要があります(これは他のメソッドでも行う必要があります)が、機能します。

これは、ご使用のブラウザーが最新でない場合に相当します。

fetch('http://code.jquery.com/jquery-latest.min.js').then(function(r){return r.text()}).then(function(r){eval(r)})

多分それは非同期で実行されるため、これがJSコールバックとプロミスが機能する方法です。そのため、スクリプトが確実に実行されるようにするには、フェッチプロミスの 'then'コールバック内で独自のコードを実行する必要がありますfetch('http://code.jquery.com/jquery-latest.min.js').then(response => response.text()).then(text => { eval(text); console.log($) })。これがお役に立てば幸いです。
Maciej Bukowski

それは私にはうまくいきませんでした。しかし、最後のブロックに2つの試用版を持つことはやった仕事をfetch('http://code.jquery.com/jquery-latest.min.js').then(response => response.text()).then(text => { eval(text); eval(text) })。これは、2回行う必要があることを明確に改善したものです。
vt5491

コンテンツポリシーで問題が発生した場合に
最適です

5

他の答えが説明するように、これを手動で行うのはかなり簡単です。ただし、jQuerifyプラグインもあります。


+1-ケン、ありがとう。jQuerifyという単語は、これを行うためのブックマークレットを作成したことを思い出させました。私が使用したコードを含む自分の答えを追加しました。私は前にこれをしたことを知っていました=)。
mrtsherman '19 / 09/19

2
このリンクで質問に答えることができますが、回答の重要な部分をここに含め、参照用のリンクを提供することをお勧めします。リンクされたページが変更されると、リンクのみの回答が無効になる可能性があります。- レビューから
adamb

@adambは、残念ながら、古いリンクが衰退する傾向とともに、これらの非常に古い回答のいくつかを改善するための私の時間と動機が、何年にもわたって散逸しています。ただし、SOの設計のおかげで、答えを自分で改善することは大歓迎です。常に心から高く評価されているエントロピーとの闘いへの貢献です。
ケンレドラー2018

5

FWIW、Firebugはinclude特別なコマンドを埋め込み、jqueryはデフォルトでエイリアスされています:https : //getfirebug.com/wiki/index.php/Include

したがって、あなたの場合、あなたはただタイプする必要があります:

include("jquery");

フローレント


実はinclude("http://code.jquery.com/jquery-latest.min.js", "jquery")初めての使用です。あなただけのinclude("jquery");場合はエラーが発生しますAlias 'jquery' not found.include("jquery");同じライブラリを別のタブ/ドメインで再利用するためのものです。
machineaddict 2015年

1
デフォルトのFirebug 1.11.4以降ではありません(このリリースの前にエイリアスを定義していない場合):code.google.com/p/fbug/issues/detail?id=6133(注:この機能の作成者は: ))
フロリダ州2015年

私はFirebug 1.12.8を使用していますが、アクセスした場合、Googleとしましょうinclude("jquery")。コンソールで実行しているときにエラーが発生します。
machineaddict 2015年

うーん、Firebug 2.0.8を使用する必要があります。これは最新の公式バージョンです。また、include( "jquery")が機能しない理由は、前述のようにバージョン1.11.4より前にエイリアスを作成したためです。あなたのfirefoxプロファイルからincludeAliases.jsonファイル(include()エイリアスを含む)を削除するだけで動作します。
フロリダ州2015年

3

この回答は@genesisの回答に基づいています。最初にブックマークバージョンの@jondavidjohnを試してみましたが、機能しません。これを次のように変更します(ブックマークに追加します)。

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')}());

注意の言葉は、クロムではテストされていませんが、Firefoxで動作し、競合環境ではテストされていません。


2

最短の方法の1つは、以下のコードをコピーしてコンソールに貼り付けるだけです。

var jquery = document.createElement('script'); 
jquery.src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js";
document.head.appendChild(jquery);

1

あなたはuserscriptのためにこれを行うために探している場合は、私がこれを書いた:http://userscripts.org/scripts/show/123588

jQuery、UI、および必要なプラグインを含めることができます。1.5.1でUIがないサイトで使用しています。このスクリプトは代わりに1.7.1とUIを提供し、ChromeやFFでの競合はありません。私は自分でOperaをテストしていませんが、他の人からも同様に動作することがわかりました。そのため、これを実行する必要がある場合、これは完全なクロスブラウザユーザースクリプトソリューションであるはずです。


1

ここに代替コードがあります:

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);})();

コンソールに直接貼り付けるかを右クリックしてChromeの新しいブックマークのページを(作成することができブックマークバーページの追加...)とURLとしてこのコードを貼り付けます。

これが機能するかどうかをテストするには、以下を参照してください。

前:

$()
Uncaught TypeError: $ is not a function(…)

後:

$()
[]

1

コンソールからjQueryを頻繁に使用する場合は、簡単にユーザースクリプトを記述できます。まず、Chromeを使用している場合はTampermonkeyをインストールし、Firefoxを使用している場合はGreasemonkeyをインストールします。次のようなuse関数を使用して簡単なユーザースクリプトを記述します。

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;
    }
}

1

ターンキーソリューション:

コードをyourCode_here機能させる。そして、HEADタグのないHTMLを防ぎます。

(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>");
}


1

最新のブラウザー(Chrome、Firefox、Safariでテスト済み)は、jQueryによく似たドル記号を使用していくつかのヘルパー関数実装$しています(Webサイトがwindow.$)。

これらのユーティリティは、DOMの要素を選択して変更するのに非常に役立ちます。

ドキュメント:ChromeFirefox


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.