รวม jQuery ในคอนโซล JavaScript


772

มีวิธีง่าย ๆ ในการรวม jQuery ในคอนโซล Chrome JavaScript สำหรับไซต์ที่ไม่ได้ใช้หรือไม่ ตัวอย่างเช่นในเว็บไซต์ฉันต้องการรับจำนวนแถวในตาราง ฉันรู้ว่านี่เป็นเรื่องง่ายด้วย jQuery

$('element').length;

เว็บไซต์ไม่ได้ใช้ jQuery ฉันสามารถเพิ่มมันจากบรรทัดคำสั่งได้หรือไม่


3
สำหรับแนวทางอัตโนมัติเพิ่มเติมคุณสามารถใช้ userscript เพื่อรวมเข้าไว้ อย่างจริงจังนี้จะเหมือนกับผู้ใช้ 5 บรรทัด: P
rlemon

9
document.getElementById('tableID').rows.length. หากตารางไม่มี ID ให้ใช้ตัวแก้ไข DOM เพื่อกำหนดให้ คุณไม่ต้องการ jQuery สำหรับสิ่งที่ไร้สาระ
Niet the Dark Absolut

มีส่วนขยายของ Chrome ที่จะทำเช่นนี้ - chrome.google.com/webstore/detail/script-injector/ …
Abhishek Saha

1
เพิ่มไปยังแท็กสคริปต์ทั้งจาก cdn หรือในเครื่อง CDN ง่ายกว่ามาก
Donato

1
ฉันเชื่อว่า Dev Tools ส่วนใหญ่ของเบราว์เซอร์ที่สำคัญตอนนี้รวม jQuery (และไลบรารี่ยอดนิยมอื่น ๆ เช่น Underscore) โดยค่าเริ่มต้น แต่ฉันไม่สามารถหาเอกสารของมันได้ เปิดป๊อปคอนโซลโดยปกติแล้วจะใช้งานได้เพียง (tm) ------ นอกจากนี้วิธีการนี้มีมานานแล้วหลายคน ฉันได้ใช้คนนี้ประสบความสำเร็จ: learningjquery.com/2009/04/...
brichins

คำตอบ:


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 (libs อื่น ๆ ฯลฯ ) คุณยังอาจพบปัญหา

ปรับปรุง:

การทำให้ดีที่สุดให้ดีขึ้นการสร้างที่คั่นหนังสือทำให้สะดวกมาก ๆ ลองทำกันและข้อเสนอแนะเล็ก ๆ น้อย ๆ ก็ยอดเยี่ยมเช่นกัน:

  1. คลิกขวาที่แถบบุ๊กมาร์กแล้วคลิกเพิ่มหน้า
  2. ตั้งชื่อตามที่คุณต้องการเช่น Inject jQuery และใช้บรรทัดต่อไปนี้สำหรับ URL:

javascript: (ฟังก์ชั่น (e, s) {e.src = s; e.onload = ฟังก์ชั่น () {jQuery.noConflict (); console.log ('jQuery ฉีด')}; document.head.appendChild (e); }) (document.createElement ( 'สคริปต์') '// 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และวางลงในคอนโซล ทำงานได้สมบูรณ์แบบ
Ruslanas Balčiūnas

9
ตอนนี้ฉันต้องการปุ่มลัดคอนโซล Chrome สำหรับ ^^ ฉันเก็บตัวอย่างโดยใช้ข้อมูลนี้และกลับไปที่นี่เพื่อรับข้อมูล
Cris Stringfellow

6
@CrisStringfellow - AKAIK มีตัวอย่างของนักพัฒนาในการทำงานตรวจสอบของคุณchrome:flagsและดูว่ามันมีคุณจะต้องเปิด
ocodo

2
@Slomojo ฉันสนุกกับอารมณ์ขันของคุณ หวังว่าเจ้าเหนือหัวจะฟังดังนั้นพวกเขาสามารถผลักช่อง DIY b-tree ฉันยังชอบที่การจัดหมวดหมู่การทดสอบทั้งหมดเป็นประโยชน์ ฉันคิดว่าพวกเขาเรียงตามค่าแฮช
Cris Stringfellow

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 และผนวกเข้ากับส่วนหัว


มันทำงานได้อย่างสมบูรณ์ขอบคุณ! (สำหรับบันทึกที่ผมได้รับ "Uncaught TypeError: $ ไม่ได้เป็นฟังก์ชั่น" และหลังจากทำงานนี้ผมก็สามารถที่จะใช้ฟังก์ชั่นและห่วงโซ่ $ -selector ปกติ.)
Ayelis

5
หากคุณได้รับข้อความความปลอดภัย (บน Facebook เป็นต้น) เพียงคัดลอก / วางเนื้อหา jquery.js ในคอนโซล javascript
Thomas Decaux

1
ทำงานได้อย่างสมบูรณ์ @ กำเนิด! 2017 เบราว์เซอร์ MS Edge
Eric Hepperle - CodeSlayer2010

มันทำงานได้อย่างสมบูรณ์และเป็นผู้ช่วยชีวิต! ง่ายและตรงไปตรงมามากกว่าคำแนะนำอื่น ๆ
Erica Summers

85

คัดลอกทุกอย่างจาก:
https://code.jquery.com/jquery-3.4.1.min.js

และวางลงในคอนโซล ทำงานได้อย่างสมบูรณ์แบบ


12
ทำงานเหมือนจับใจ! และจะไม่เพิ่มสคริปต์ใน DOM ซึ่งบางครั้งไม่สามารถทำได้เนื่องจาก 'นโยบายความปลอดภัยของเนื้อหา' ฉันพยายามตอบรับที่ยอมรับแล้ว: ปฏิเสธที่จะโหลดสคริปต์ ' ajax.googleapis.com/ajax/libs/jquery/1/jquery.js ' เพราะมันละเมิดคำสั่งนโยบายความปลอดภัยเนื้อหาต่อไปนี้: "script-src .. ..
Kangur

1
ตรวจสอบก่อนว่ามีตัวแปร $ หรือไม่ หากไม่ใช่ jQuery ควรปล่อย jQuery ไว้ที่ $ var หลังจากเรียกใช้งานสคริปต์ด้านบน: $ .noConflict ()
Kangur

ฉันพยายามใช้ความหลากหลายของคำตอบที่ 3 บรรทัด .. ไม่มีของพวกเขาจะช่วยให้ฉันไปใช้หรือjQuery $วิธีนี้ใช้ได้ผลเท่านั้น และเนื่องจากฉันไม่ได้ใช้คอนโซลบันทึกอย่างอื่นวันนี้มากเกินไป - มันมักจะอยู่ในประวัติคำสั่งของฉันดังนั้นหลังจากครั้งแรกที่ฉันคัดลอกในเนื้อหา - ตอนนี้ต้องกดลูกศรขึ้นแล้วป้อน เจ๋งมาก - ขอบคุณ
Gene Bo

คำตอบที่ราบรื่น.! กำลังมองหาความคิดเห็นยอดนิยมของคุณเป็นคำตอบ! ยิ่งใหญ่
Irf

Web 3.0 ดูสวยงามเช่นเคย
undercat ปรบมือ Monica

63

ใช้หนังสือเล่มเล็ก jQueryify:

http://marklets.com/jQuerify.aspx

แทนที่จะคัดลอกการวางโค้ดในคำตอบอื่น ๆ สิ่งนี้จะทำให้เป็นบุ๊กมาร์กที่คลิกได้


4
สามารถคัดลอกคำตอบอื่น ๆ ลงใน bookmarklet ได้เช่นกัน ..... เพียงแค่เข้ารหัส URL และเพิ่มไว้javascript:ก่อนหน้า
d -_- b

การเรียก jQuery ที่แก้ไของค์ประกอบ td คืออะไร ดูเหมือนว่าจะสุ่มและ / หรืออันตราย "td.editselectoption [value = BN]" ...
Kimball Robinson

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”).
Rishabh Agrahari

30

การเพิ่มคำตอบของ @ jondavidjohn เราสามารถตั้งเป็นบุ๊คมาร์คที่มี URL เป็นรหัสจาวาสคริปต์

ชื่อ:รวม 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 เพื่อแทนที่จะวางสคริปต์ซ้ำแล้วซ้ำอีกเราสามารถคลิกที่ bookmarklet

สกรีนช็อตของบุ๊กมาร์ก


2
2 การปรับปรุง: 1) ใช้เวลาในการโหลดสคริปต์ดังนั้น if (jQuery) ... จะเกือบจะล้มเหลวเสมอ ฉันแนะนำให้เพิ่ม setTimeout เพื่อชะลอการโหลด 2) อย่าใช้ jquery-ล่าสุดไม่ใช่รุ่นล่าสุดและใช้ไม่ได้ (ดูที่blog.jquery.com/2014/07/03/dont-use-jquery-latest-js )
Giuseppe Bertone

jQuery.noConflict();ทำให้มันดูเหมือนจะไม่ทำงานบนเว็บไซต์สุ่มฉันถูกทดสอบนี้ กลับกลายเป็นว่าพวกเขามี jQuery อยู่แล้ว แต่ jQuery ของพวกเขาไม่มี$ทางลัดด้วยเหตุผลบางอย่าง ภาพหน้าจอ: prntscr.com/bdcpdh
Rani Kheir

22

ฉันเป็นกบฏ

วิธีแก้ปัญหา: อย่าใช้ jQuery jQuery เป็นไลบรารี่ที่สร้างความไม่สะดวกให้กับ DOM ในเบราว์เซอร์ เนื่องจากคุณอยู่ในคอนโซลของคุณเองคุณไม่จำเป็นต้องมีสิ่งที่เป็นนามธรรม

สำหรับตัวอย่างของคุณ:

$$('element').length

( $$เป็นชื่อแทนdocument.querySelectorAllในคอนโซล)

สำหรับตัวอย่างอื่น: ฉันแน่ใจว่าฉันสามารถหาอะไรได้ โดยเฉพาะอย่างยิ่งถ้าคุณกำลังใช้เบราว์เซอร์ที่ทันสมัย ​​(Chrome, FF, Safari, Opera)

นอกจากนี้การรู้ว่า DOM ทำงานอย่างไรจะไม่ทำร้ายใครมันจะเพิ่มระดับ jQuery ของคุณเท่านั้น (ใช่การเรียนรู้เพิ่มเติมเกี่ยวกับ javascript จะทำให้ jQuery ดีขึ้น)


4
ขอบคุณสำหรับแนวคิดของ Florian ฉันยอมรับว่าทุกคนที่ใช้ jQuery ควรรู้จัก javascript ด้วย การโหลด jQuery เป็นการประหยัดครั้งใหญ่ไม่ใช่เพียงเพราะมันขัดกับความไม่สอดคล้องของ DOM เอ็นจิ้นเลือกของมันsizzleมีประสิทธิภาพมากกว่าการโทรด้วยจาวาสคริปต์ทั่วไป การค้นหาสิ่งที่ต้องการ$('div.className').children().hasClass('active').filter( function(index) { ... });จะเป็นฝันร้ายใน js ธรรมดา
mrtsherman

7
คุณหมายถึงdocument.querySelectorAll('div.className .active').filter(function(index) {})อะไร : p
Florian Margaine

6
@FlorianMargaine [].slice.call( document.querySelectorAll('div.className .active') ).filter...แต่ใช่แล้วประเด็น: ถ้าคุณมีเบราว์เซอร์ที่ทันสมัย ​​dom ไม่เจ็บปวดแม้จะไม่มี jQuery :)
Esailija

5
คุณไม่ได้กบฏดูเหมือนว่าแทนที่คุณชอบที่จะเสียเวลาในการพิมพ์มากขึ้น :)
แอนเดอ Fortaleza

1
@DavidWest :1ไม่ใช่ตัวเลือกหลอก บางทีคุณอาจต้องการ:first-child?
Margian Florian

12

ฉันเพิ่งทำ jQuery 3.2.1 bookmarklet พร้อมการจัดการข้อผิดพลาด (โหลดเฉพาะหากยังไม่ได้โหลดตรวจสอบรุ่นหากโหลดแล้วข้อความแสดงข้อผิดพลาดหากเกิดข้อผิดพลาดขณะโหลด) ผ่านการทดสอบใน Chrome 27. มีเหตุผลที่จะใช้ "เก่า" jQuery 1.9.1 บนเบราว์เซอร์ Chrome ตั้งแต่ไม่เป็นjQuery 2.0 API ที่เข้ากันได้กับ 1.9

เพียงเรียกใช้สิ่งต่อไปนี้ในคอนโซลนักพัฒนาซอฟต์แวร์ของ 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...")}}})())

ซอร์สโค้ดที่สามารถอ่านได้มีอยู่ที่นี่


สิ่งนี้ทำงานได้ดีแม้ว่าจะมีการอัปเดต URL สำหรับไฟล์. js
dsomnus

บางทีเว็บไซต์ที่คุณพยายามจะใช้อาจส่งส่วนหัวของเนื้อหา - นโยบายความปลอดภัยที่กำหนดเอง
fnkr

8

คำตอบด้านบนโดย jondavidjohnเป็นสิ่งที่ดี แต่ฉันต้องการที่จะปรับแต่งให้อยู่คู่ของจุด:

  • เบราว์เซอร์ต่างๆออกคำเตือนเมื่อโหลดสคริปต์จากไปยังหน้าhttphttps
  • เพียงแค่เปลี่ยนjquery.comโปรโตคอลของhttpsผลลัพธ์การเตือนถ้าคุณลองตรงจากแถบ URL ของเบราว์เซอร์:This is probably not the site you are looking for!
  • ฉันชอบใช้ CDN ของ Google เมื่อฉันใช้คอนโซลเพื่อทดลองกับเว็บไซต์ Google เช่น Gmail

ปัญหาเดียวของฉันคือฉันต้องรวมหมายเลขรุ่นที่อยู่ในคอนโซลฉันต้องการล่าสุดเสมอ

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' 'ไม่ปลอดภัย-EVAL" โปรดทราบว่า 'script-src-elem' ไม่ได้ถูกตั้งค่าไว้อย่างชัดเจนดังนั้น 'script-src' จึงถูกใช้เป็นทางเลือก
Dimmduh

7

ตามคำตอบนี้ :

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

ด้วยเหตุผลบางอย่างฉันต้องดำเนินการสองครั้งเพื่อรับ '$' ใหม่ (ซึ่งฉันต้องทำด้วยวิธีอื่นเช่นกัน) แต่ก็ใช้งานได้

นี่เทียบเท่าถ้าเบราว์เซอร์ของคุณไม่ทันสมัย:

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

อาจเป็นเพราะมันทำงานแบบอะซิงโครนัสนี่เป็นวิธีการเรียกกลับและสัญญาของ JS ดังนั้นเพื่อให้แน่ใจว่าสคริปต์จะถูกดำเนินการที่คุณต้องใช้รหัสของคุณเองภายใน 'แล้ว' fetch('http://code.jquery.com/jquery-latest.min.js').then(response => response.text()).then(text => { eval(text); console.log($) })โทรกลับของสัญญาดึงข้อมูล: หวังว่านี่จะช่วยคุณได้
Maciej Bukowski

นั่นไม่ได้ผลสำหรับฉัน แต่การมีสอง evals ในบล็อกสุดท้ายก็ใช้งานfetch('http://code.jquery.com/jquery-latest.min.js').then(response => response.text()).then(text => { eval(text); eval(text) })ได้ นี่เป็นการปรับปรุงที่ชัดเจนว่าต้องทำสองครั้ง
vt5491

ยอดเยี่ยมสำหรับกรณีที่คุณมีปัญหากับนโยบายเนื้อหา
Alexey Sh

5

มันค่อนข้างง่ายที่จะทำด้วยตนเองเช่นเดียวกับคำตอบอื่น ๆ ที่อธิบาย แต่นอกจากนี้ยังมีjQuerify Plug-in


+1 - ขอบคุณเคน คำ jQuerify เตือนฉันว่าฉันสร้าง bookmarklet เพื่อทำสิ่งนี้ ฉันเพิ่มคำตอบของตัวเองซึ่งมีรหัสที่ฉันใช้ ฉันรู้ว่าฉันเคยทำสิ่งนี้มาก่อน =)
mrtsherman

2
แม้ว่าลิงก์นี้อาจตอบคำถามได้ดีกว่าหากรวมส่วนสำคัญของคำตอบไว้ที่นี่และให้ลิงก์สำหรับการอ้างอิง คำตอบสำหรับลิงค์เท่านั้นอาจไม่ถูกต้องหากหน้าเว็บที่เชื่อมโยงนั้นเปลี่ยนแปลง - จากการตรวจสอบ
adamb

@adamb โชคไม่ดีพร้อมกับแนวโน้มของการเชื่อมโยงแบบเก่ากับการสลายตัวเวลาและแรงจูงใจของฉันในการปรับปรุงคำตอบเก่า ๆ เหล่านี้บางส่วนได้หายไปในช่วงหลายปีที่ผ่านมา ขอบคุณการออกแบบ SO ดังนั้นคุณมีความยินดีอย่างยิ่งที่จะปรับปรุงคำตอบด้วยตัวคุณเอง - มีส่วนช่วยในการต่อสู้กับเอนโทรปีที่ได้รับการชื่นชมอย่างเต็มที่เสมอ
Ken Redler

5

FWIW, Firebug ฝังincludeคำสั่งพิเศษและ jQuery นั้นใช้นามแฝงเป็นค่าเริ่มต้น: https://getfirebug.com/wiki/index.php/Include

ดังนั้นในกรณีของคุณคุณต้องพิมพ์:

include("jquery");

Florent


จริงๆแล้วมันinclude("http://code.jquery.com/jquery-latest.min.js", "jquery")ใช้ครั้งแรก หากคุณเพียงแค่คุณได้รับข้อผิดพลาดinclude("jquery"); ใช้สำหรับนำไลบรารีเดียวกันกลับมาใช้ซ้ำบนแท็บ / โดเมนอื่น Alias 'jquery' not found.include("jquery");
machineaddict

1
ไม่ใช่ตั้งแต่ Firebug 1.11.4 ซึ่งเป็นค่าเริ่มต้น (เว้นแต่คุณจะกำหนดนามแฝงก่อนการเปิดตัวนี้): code.google.com/p/fbug/issues/detail?id=6133 (หมายเหตุ: ฉันเป็นผู้เขียนคุณลักษณะนี้: ))
แฟน

ฉันมี Firebug 1.12.8 และถ้าฉันไปขอสมมติว่า Google ในขณะที่ทำงานinclude("jquery")ในคอนโซลทำให้ฉันได้รับข้อผิดพลาดนั้น
machineaddict

อืมคุณควรใช้ Firebug 2.0.8 ซึ่งเป็นเวอร์ชั่นล่าสุดอย่างเป็นทางการ ด้วยเหตุผลที่ว่าทำไมการรวม ("jquery") ไม่ทำงานสำหรับคุณก็เป็นสิ่งที่แน่นอนเพราะคุณได้สร้างนามแฝงก่อนรุ่น 1.11.4 ตามที่ฉันพูดถึง เพียงแค่ลบincludeAliases.jsonไฟล์ (ซึ่งมีinclude()นามแฝง) ในโปรไฟล์ firefox ของคุณและควรใช้งานได้
คู่รัก

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

คำเตือนไม่ถูกทดสอบใน chrome แต่ทำงานใน firefox และไม่ได้ทดสอบในสภาพแวดล้อมที่มีข้อขัดแย้ง


2

หนึ่งในวิธีที่สั้นที่สุดคือเพียงคัดลอกการวางโค้ดด้านล่างลงในคอนโซล

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 บ่อยๆจากคอนโซลคุณสามารถเขียน userscript ได้อย่างง่ายดาย ก่อนอื่นให้ติดตั้ง Tampermonkey หากคุณใช้ Chrome และ Greasemonkey หากคุณใช้ Firefox เขียน userscript อย่างง่ายพร้อมฟังก์ชั่นการใช้งานเช่นนี้:

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ฟังก์ชั่น และป้องกัน HTML ที่ไม่มีแท็ก HEAD

(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 (หากเว็บไซต์ไม่ได้กำหนดสิ่งที่ใช้window.$)

ยูทิลิตี้เหล่านั้นค่อนข้างมีประโยชน์สำหรับการเลือกองค์ประกอบใน DOM และแก้ไข

เอกสาร: Chrome , Firefox


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.