14

現在ブラウザにロードされている Web ページで、ユーザーが必要な jQuery を任意に実行できるプログラム的な方法 (またはブラウザ プラグイン) はありますか?

編集:

私の動機は、ページで jQuery 構文とコマンドを事前にテストしてから、それらをソースに追加したり、実験したページの Web 管理者に微調整を提案したりできるようにすることです。

メイン サイトの jQuery を使用してテストを実行しています。現在は 3.5.1 です: jQuery ダウンロード ページ

4

8 に答える 8

27

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 は任意の Web ページにロードされ、コンソールで使用できるようになります :)

上記のコードは、JavaScript コンソールを備えたすべてのブラウザーで機能するはずです。

または、ユーザー スクリプト (Greasemonkey や FireQuery など) があり、jQuery がページに含まれていない場合、上記のコードを自動的に実行して jQuery を挿入し、他の人のページを簡単にスクリプト化してハッキングできるようにします。

于 2011-12-14T17:07:18.823 に答える
13

これは Google CDN を使用し、HTTPs フレンドリーで、1 行で、ラップされています。

(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/libraries/devguide にリストされています。

于 2012-08-28T13:57:30.427 に答える
4

FireQueryは、jQuery を組み込むことができる優れた Firebug 拡張機能であり、そこからコンソールで jQuery を使用できます。

「jQuerify: jQuery を任意の Web ページに挿入できます」

于 2011-12-14T17:04:44.747 に答える
2

便宜上、Chrome の jQuery挿入する(そしてそれが存在することを示す) ため、非競合モードでHTTPSページにでもプロトタイプを作成します (プロトタイプがページにも存在するかどうかを示します) 。数年間の経験で何千人ものユーザーによって証明されました。一言で言えば、「時間を節約する」。

于 2013-05-08T16:38:15.970 に答える
2

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();});
        }
    }
})();
于 2011-12-14T19:27:43.780 に答える
0

firefox での開発では、 FirebugFireQueryで使用できます。

于 2011-12-14T17:06:41.530 に答える
0

これをチェックしてください:

jQuery ブックマークレット ジェネレーター http://benalman.com/projects/run-jquery-code-bookmarklet/

于 2011-12-14T17:08:30.883 に答える
-1

eval渡された任意の文字列を実行しますが、その使用法が「適切」である場合は争われます。

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

ドキュメントの準備ができたときにアラートが表示されます (evalが呼び出される前に jQuery がソースされている場合)。

于 2011-12-14T17:04:18.223 に答える