จะยุติการทำงานของสคริปต์เมื่อทำการดีบั๊กใน Google Chrome ได้อย่างไร


210

เมื่อก้าวผ่านโค้ด JavaScript ในดีบักเกอร์ Google Chrome ฉันจะยุติการทำงานของสคริปต์ได้อย่างไรหากฉันไม่ต้องการดำเนินการต่อ วิธีเดียวที่ฉันพบคือปิดหน้าต่างเบราว์เซอร์

การกด "โหลดหน้านี้ใหม่" จะเรียกใช้รหัสที่เหลือและส่งแบบฟอร์มราวกับว่ากด F8 "ดำเนินการต่อ"

อัปเดต :

เมื่อกด F5 (รีเฟรช) ในขณะที่สคริปต์หยุดชั่วคราว:

  • Google Chrome (v22) เรียกใช้สคริปต์ หากสคริปต์ส่งคำขอ HTTP การตอบสนอง HTTP สำหรับคำขอนั้นจะปรากฏขึ้น หน้าเดิมไม่ได้รีเฟรช
  • IE 9 เพิ่งหยุดทำงาน อย่างไรก็ตาม IE มีตัวเลือก "Stop Debugging" ซึ่งเมื่อกด (หากคุณไม่ได้กด F5 ก่อนหน้านี้) จะยังคงเรียกใช้สคริปต์ภายนอกตัวดีบัก
  • Firebug ทำงานเหมือนกับ Chrome

การปิดและเปิดอีกครั้งหน้าต่างเบราว์เซอร์อาจไม่ใช่วิธีที่ง่ายที่สุดต่อไปเพราะจะฆ่าสถานะเซสชันของเบราว์เซอร์และอาจมีความสำคัญ จุดพักทั้งหมดของคุณจะหายไปเช่นกัน

อัปเดต (มกราคม 2014) :

รีเฟรชขณะดีบัก:

  • Chrome v31: อนุญาตให้สคริปต์เรียกใช้และหยุดบนจุดพักเพิ่มเติม (แต่ไม่ส่งคำขอ ajax) จากนั้นรีเฟรช
  • IE 11: การรีเฟรชไม่ได้ทำอะไรเลย แต่คุณสามารถกด F5 เพื่อดำเนินการต่อ
  • Firefox v26: อนุญาตให้สคริปต์ทำงานได้ แต่ไม่หยุดอยู่ที่จุดพักเพิ่มเติมส่งคำขอ ajax จากนั้นรีเฟรช

ชนิดของความคืบหน้า!

นำทางไปยังหน้าเดียวกันขณะทำการดีบัก:

  • Chrome v31: เหมือนกับรีเฟรช
  • IE 11: สคริปต์ถูกปิดเซสชันของเบราว์เซอร์ใหม่เริ่มต้นขึ้น (เช่นเดียวกับการปิดและเปิดอีกครั้ง)
  • Firefox v26: ไม่มีอะไรเกิดขึ้น

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

อัปเดต (มีนาคม 2015) :

ในที่สุดหลังจากผ่านไป 2 ปีและเกือบ 10K views คำตอบที่ถูกต้องได้รับจาก Alexander K. Google Chrome มีตัวจัดการงานของตัวเองซึ่งสามารถฆ่ากระบวนการแท็บโดยไม่ต้องปิดแท็บเองโดยรักษาจุดพักและสิ่งอื่น ๆ

ฉันไปได้ไกลถึง BrowserStack.com เพื่อทดสอบใน Chrome v22 และพบว่านี่ใช้งานได้แม้ในเวลานั้น

วิธีแก้ปัญหาของ Juacala ยังคงมีประโยชน์เมื่อทำการดีบั๊กใน IE หรือ Firefox

ปรับปรุง (มกราคม 2562) :

ในที่สุด Chrome Dev Tools ได้เพิ่มวิธีที่เหมาะสมในการหยุดการทำงานของสคริปต์ซึ่งดี (แม้ว่าจะซ่อนอยู่เล็กน้อย) อ้างถึงคำตอบของ James Gentes สำหรับรายละเอียด


12
พิมพ์debugger;ลงในคอนโซลเครื่องมือ dev และมันจะใส่สิ่งต่าง ๆ ลงในดีบักเกอร์ทันทีและหยุดสคริปต์
Jake

3
คำตอบของ James Gentes ดูเหมือนจะเป็นทางออกที่ดีกว่าในปี 2019
Spikolynn

1
ทำไมทุกคนถึงพูดถึงการหยุดสคริปต์? นี่เป็นเรื่องเกี่ยวกับการยกเลิก / ทำลายรหัส "ติดตาม / ตามกำหนด" ทั้งหมดที่จะมา
Andre Elrico

คำตอบ:


188

ใน Chrome มี "ตัวจัดการงาน" เข้าถึงได้ผ่านShift+ ESCหรือผ่าน

เมนู→เครื่องมือเพิ่มเติม→ตัวจัดการงาน

คุณสามารถเลือกงานหน้าของคุณและจบได้โดยกดปุ่ม "สิ้นสุดกระบวนการ"


4
chrome 48นี้จะปิดเครื่องมือ Dev เท่านั้นและไม่ยุติเปิดใหม่คุณจะเห็นว่าโปรแกรมยังคงทำงานอยู่ ( tried setInterval())
Abdelouahab

11
ฉันไม่เห็น "ตัวจัดการงาน" ภายใต้ "เครื่องมือเพิ่มเติม" และ Shift + esc ไม่ทำอะไรเลย ... (Chrome 50, OSX) Shift + ESC ทำงานภายใต้ Chrome / Windows แม้ว่า ...
Michael

2
ว้าว - ฉันต้องการสิ่งนี้มานานและมันอยู่ที่นั่นมานานหลายปี! นี่คือคำตอบ StackOverflow ที่เป็นประโยชน์ที่สุดที่ฉันเคยเห็นมาตลอดทั้งปี!
Michael Scheper

4
บน Macintosh (Chrome v.63) ตัวเลือกนี้จะแสดงภายใต้เมนู "หน้าต่าง" ในกลุ่มที่สาม ไม่มีแป้นพิมพ์ลัดที่เห็นได้ชัด
อพอลโล

2
นี้จะฆ่าแท็บ
htafoya

105

ตั้งแต่เมษายน 2018 คุณสามารถหยุดลูปไม่สิ้นสุดใน Chrome ได้ :

  1. เปิดพาเนลSourcesในเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ ( Ctrl+ Shift+I **)
  2. คลิกหยุดชั่วคราวเพื่อหยุดการเรียกสคริปต์

บันทึกปุ่มลัดด้วย: F8และCtrl+\

ป้อนคำอธิบายรูปภาพที่นี่


เป็นอัญมณีที่ซ่อนอยู่ใน UI นั้น
norbert

ผู้ตอบมีกุญแจไขความลับของจักรวาล
Sam

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

@DanDascalescu ฉันมี Chrome 80.0.3987.149 และมันก็ดูเหมือนกัน
James Gentes

บางทีเรากำลังดูปุ่มในสภาวะการทำงานที่แตกต่างกัน? ของฉันคือฉันเลือกbodyองค์ประกอบที่นี่บน SO ตั้งค่า "หยุดพัก -> การปรับเปลี่ยนทรีย่อย" จากนั้นคลิกที่ใดก็ได้ ปุ่มดูเหมือนในภาพหน้าจอที่ฉันโพสต์
Dan Dascalescu

37

วิธีหนึ่งที่คุณสามารถทำได้คือหยุดสคริปต์ชั่วคราวดูที่โค้ดต่อไปนี้ที่ซึ่งคุณหยุดอยู่เช่น:

var something = somethingElse.blah;

ในคอนโซลทำต่อไปนี้:

delete somethingElse;

จากนั้นเล่นสคริปต์: มันจะทำให้เกิดข้อผิดพลาดร้ายแรงเมื่อพยายามเข้าถึง somethingElseและสคริปต์จะตาย Voila คุณเลิกสคริปต์แล้ว

แก้ไข: เดิมฉันลบตัวแปร นั่นไม่ดีพอ คุณต้องลบฟังก์ชันหรือวัตถุที่ JavaScript พยายามเข้าถึงคุณสมบัติ


3
you have to delete a function or an objectช่างเป็นคนน่ารังเกียจจริงๆ! (ใน UI มันจะพอดีกับปุ่มฆ่าทั้งหมด )
Mars Robertson

มันค่อนข้างน่ารังเกียจ แต่ฉันไม่สามารถคิดวิธีอื่นได้
juacala

ปีต่อมาฉันกลับไปที่คำถามเดียวกัน ... และฉันไม่สามารถเข้าใจได้! มีวิธีทำให้สามัญมากกว่านี้หรือไม่?
Mars Robertson

คุณไม่สามารถหาวิธียุติการทำงานของสคริปต์ได้ใช่ไหม ฉันสามารถทำสิ่งนี้ได้เสมอ คุณมีตัวอย่างที่ไม่ให้คุณฆ่าสคริปต์ด้วยวิธีนี้หรือไม่?
juacala

1
@Hashim คุณต้องใส่จุดพักในฟังก์ชั่น ดังนั้นตรวจสอบให้แน่ใจว่าด้านในของฟังก์ชั่นนั้นอยู่ในบรรทัดที่แยกจากคำจำกัดความของฟังก์ชัน ในกรณีของคุณคุณจะต้องอยู่ในคอนโซลเมื่อหยุดชั่วคราวให้พิมพ์ "document.getElementById ('see_older') parentNode.removeChild (document.getElementById ('see_older'));" นี่เป็นเพราะคุณไม่มีอะไรในจาวาสคริปต์ที่จะทำลาย น่าเสียดายที่นี่เปลี่ยน HTML เช่นกัน หากคุณสามารถเปลี่ยนรหัสเป็น "var el = document.getElementById ('see_older'); \ n el.getEl ... " จากนั้นคุณสามารถทำได้ "ลบ el;" และนั่นจะหยุดมัน
juacala

12

อัพเดตเมษายน 2563

ตั้งแต่ Chrome 80 คำตอบปัจจุบันไม่ทำงาน ไม่มีปุ่ม "หยุดชั่วคราว" ปรากฏขึ้น - คุณต้องคลิกที่ปุ่ม "เล่น" ค้างไว้เพื่อเข้าถึงไอคอนหยุด:

หยุดการทำงานของสคริปต์ใน Chrome DevTools


2
ขอบคุณพระเจ้า! คำตอบที่แท้จริงสำหรับคำถามของ OP
user1023110

1
@ user1023110: ฉันไม่รู้เกี่ยวกับพระเจ้า แต่คุณก็ยินดีต้อนรับ :)
Dan Dascalescu

5

หากคุณกำลังเผชิญกับสิ่งนี้ในขณะที่ใช้debuggerคำสั่ง

debugger;

... จากนั้นฉันคิดว่าหน้าจะยังคงทำงานต่อไปเรื่อย ๆ จนกว่าจะให้ผลตอบแทน js หรือการหยุดพักครั้งต่อไป สมมติว่าคุณอยู่ในโหมด break-on-error (สลับ pause-icon) คุณสามารถมั่นใจได้ว่าจะเกิดการหยุดพักโดยการทำสิ่งที่ต้องการ:

debugger;throw 1;

หรืออาจจะเรียกฟังก์ชั่นที่ไม่มีอยู่:

debugger;z();

(แน่นอนว่ามันไม่ได้ช่วยอะไรถ้าคุณพยายามที่จะก้าวผ่านฟังก์ชั่นแม้ว่าบางทีคุณสามารถเพิ่มthrow 1หรือz()หรือบางส่วนในแผงแหล่งข้อมูลแบบ ctrl-S เพื่อบันทึกและจากนั้น ctrl-R เพื่อรีเฟรช ... อย่างไรก็ตามอาจข้ามจุดพักหนึ่งจุด แต่อาจใช้ได้หากคุณอยู่ในลูป)

หากคุณกำลังวนซ้ำและคาดว่าจะเรียกใช้debuggerคำสั่งอีกครั้งคุณสามารถพิมพ์throw 1แทนได้

throw 1;

จากนั้นเมื่อคุณกด ctrl-R การโยนครั้งถัดไปจะถูกกดและหน้าจะรีเฟรช

(ทดสอบกับ Chrome v38, ประมาณเดือนเมษายน 2017)


3

คำถามที่ดีที่นี่ ฉันคิดว่าคุณไม่สามารถยุติการทำงานของสคริปต์ได้ แม้ว่าฉันจะไม่เคยมองหามันมาก่อน แต่ฉันใช้ debugger ของ Chrome มาเป็นเวลานาน ฉันมักจะตั้งจุดพักในรหัสจาวาสคริปต์ของฉันแล้วฉันจะแก้จุดบกพร่องส่วนของรหัสที่ฉันสนใจเมื่อฉันเสร็จสิ้นการแก้จุดบกพร่องรหัสนั้นฉันมักจะเรียกใช้ส่วนที่เหลือของโปรแกรมหรือรีเฟรชเบราว์เซอร์

หากคุณต้องการป้องกันไม่ให้สคริปต์ที่เหลือถูกเรียกใช้งาน (เช่นเนื่องจากการโทร AJAX ที่กำลังจะเกิดขึ้น) สิ่งเดียวที่คุณทำได้คือการลบรหัสนั้นในคอนโซล on-the-fly ดังนั้นการป้องกันการโทรเหล่านั้น จากการถูกดำเนินการจากนั้นคุณสามารถรันโค้ดที่เหลือโดยไม่มีปัญหา

ฉันหวังว่านี่จะช่วยได้!

PS: ฉันพยายามที่จะหาตัวเลือกสำหรับการยกเลิกการดำเนินการในบทเรียน / คู่มือเช่นคนต่อไปนี้ แต่ไม่สามารถหาได้ อย่างที่ฉันพูดไปก่อนหน้านี้คงไม่มีทางเลือกเช่นนั้น

http://www.codeproject.com/Articles/273129/Beginner-Guide-to-Page-and-Script-Debugging-with-C

http://www.nsbasic.com/app/tutorials/TT10.htm


ฉันช่วยได้ไหม ดูเหมือนว่าไม่มีตัวเลือกยกเลิก แต่เพื่อป้องกันการเรียกใช้รหัสต่อไปนี้คุณสามารถแสดงความคิดเห็นก่อนหรือลบรหัส / เรียก "สด" ต่อไปนี้ภายในตัวดีบัก Chrome (ตัวเลือกหลังนี้จะทำให้ปุ่มดำเนินการต่อไป ทำตัวเหมือนเลิกจ้าง) ฉันรู้ว่าพวกเขาไม่ใช่ทางออกที่ดี แต่ฉันคิดว่าพวกเขาเป็นวิธีที่ดีที่สุด มีคำแนะนำอะไรมั้ย?
RoménRodríguez-Gil

1
ในหลายกรณีรหัสที่จำเป็นต้องป้องกันไม่ให้ดำเนินการได้คือ call stack (ฟังก์ชันที่จะได้รับการควบคุมหลังจากที่ฟังก์ชันปัจจุบันส่งคืน) แน่นอนว่าฉันสามารถไปและแก้ไขฟังก์ชั่นต่างๆของ call stack แล้วค้นหาและแก้ไขฟังก์ชั่นทั้งหมดซึ่งอาจเรียกว่าแบบอะซิงโครนัส ฉันแน่ใจว่ามันจะต้องเป็นเรื่องเล็กน้อยสำหรับเบราว์เซอร์ที่จะรีเฟรชหน้าเว็บโดยที่สคริปต์ยังคงอยู่ในสถานะหยุดชั่วคราวหากหยุดชั่วคราวในขณะที่กดปุ่มการรีเฟรชหน้า ฉันยังคิดว่ามันควรจะเป็นพฤติกรรมที่คาดหวังสำหรับเบราว์เซอร์ใด ๆ (น่าเสียดายที่มันไม่ได้)
srgstm

2
ที่จริงฉันพบวิธีแก้ปัญหาเพื่อให้การยุติการทำงานของสคริปต์เสร็จสมบูรณ์: ใน Chrome ฉันเปิดดีบักเกอร์เพื่อดีบักแอปพลิเคชันของฉันและฉันตั้งจุดพัก ฉันเรียกใช้หน้า การดำเนินการหยุดชั่วคราวที่เบรกพอยต์ จากนั้นฉันตรวจสอบปัญหาและตระหนักถึงสิ่งที่ทำให้เกิดข้อผิดพลาด หากต้องการยุติการดำเนินการฉันคลิกที่ปุ่ม X ถัดจาก URL (เพื่อหยุดการโหลดหน้าเว็บ) จากนั้นเมื่อดำเนินการสคริปต์ (F8) ต่อไปจะเป็นการสิ้นสุด ฉันคิดว่าวิธีง่าย ๆ ที่จะทำให้สำเร็จ คุณคิดอย่างไรเกี่ยวกับอันนี้
RoménRodríguez-Gil

ปุ่ม X ใน Chrome ถูกแทนที่ด้วยปุ่มรีเฟรชหลังจากที่โหลดหน้าเว็บแล้วจึงไม่มีวิธีกด X หลังจากนั้น (ฉันได้ลองใน IE ซึ่งมี X พร้อมใช้งานตลอดเวลา แต่มันค้างอย่างต่อเนื่อง) ฉันได้ทดสอบข้อเสนอแนะของคุณระหว่างการโหลดหน้าเว็บและพบว่าสคริปต์จะไม่ยุติลงหลังจากกด X แล้วตามด้วย F8 อาจเป็นไปได้ว่าสคริปต์ที่ยังไม่ได้โหลดลงในเบราว์เซอร์ในขณะที่กด X ไม่ได้ถูกโหลดหลังจากนั้น แต่ควรเห็นได้ชัด
srgstm

โอ้คุณพูดถูกมันเป็นการทดสอบอย่างรวดเร็วและไม่ได้เป็นตัวแทน ... จากนั้นดูเหมือนว่าจะไม่มีวิธีแก้ปัญหา
RoménRodríguez-Gil

3

อ้างถึงคำตอบที่ได้รับจาก @scottndecker สำหรับคำถามต่อไปนี้ตอนนี้ chrome ให้ตัวเลือก 'ปิดการใช้งาน JavaScript' ภายใต้เครื่องมือสำหรับนักพัฒนาซอฟต์แวร์:

  • แนวตั้งที่...มุมบนขวา
  • การตั้งค่า
  • และใต้ 'การตั้งค่า' ให้ไปที่ส่วน 'ดีบักเกอร์' ที่ด้านล่างสุดและเลือก 'ปิดใช้งาน JavaScript'

สิ่งที่ดีคือคุณสามารถหยุดและรันใหม่อีกครั้งเพียงตรวจสอบ / ยกเลิกการเลือก


1
หากคุณลงคะแนนเพราะคุณสับสนระหว่างเมนูเครื่องมือสำหรับนักพัฒนาและเมนู Chrome มันเป็นเรื่องที่น่าเศร้ามาก :(
theFreedomBanana

ไม่ได้ผลสำหรับฉัน ฉันทำเครื่องหมายในช่องปิดการใช้งานจาวาสคริปต์ แต่สคริปต์ก็ยังทำงานต่อไป
Paul Gorbas

1

คุณสามารถทำได้ แต่คุณต้องเตรียมรหัสของคุณก่อน

คำแนะนำสำหรับการหยุดการทำงานของสคริปต์ในเครื่องมือ Google Chrome Dev

(1) เตรียมรหัสของคุณก่อนโดยสร้างตัวแปรทั่วโลก :

var devquit=0;
$(document).ready({
    //the rest of your code

(2) สถานที่ใด ๆ ที่คุณอาจต้องการออกจากการทดสอบค่าของตัวแปรนี้:

//Lotsa code
if (devquit > 0) return false;

(3) หยุดการทำงานของสคริปต์ชั่วคราวหรือก่อนหน้าบรรทัดทดสอบข้างต้น

(4) สลับไปที่คอนโซล

(5) ประเภท:

> devquit
0
> devquit=1   <=== only this line is necessary
> devquit
1

(6) ดำเนินการสคริปต์ต่อไป สคริปต์จะทำงานreturn falseเมื่อทำการทดสอบจากขั้นตอนที่ (2) ด้านบน


หมายเหตุ:

(A) เคล็ดลับนี้ใช้ได้กับตัวแปรและวัตถุทั่วโลก แต่จะไม่ทำงานกับตัวแปรท้องถิ่น โปรดทราบว่าสิ่งนี้:
newVar = 'never used before';
สร้างคุณสมบัติใหม่ของวัตถุหน้าต่าง(ทำงานกับเคล็ดลับด้านบน) ในขณะนี้:
var newVar = 'never used before';
สร้างตัวแปรท้องถิ่น(ไม่ทำงานกับเคล็ดลับด้านบน!)

(B) ดังนั้นคุณยังสามารถใช้เคล็ดลับนี้กับรหัสที่รันอยู่แล้วหากคุณมีตัวแปรโกลบอลหรือวัตถุที่จะส่งคืนค่าเท็จหากมีค่าที่กำหนด

(C) ในเหน็บแนมคุณสามารถใช้เคล็ดลับของ juacala และลบองค์ประกอบจาก DOM (บนแท็บองค์ประกอบ) ที่จะทำให้เกิดข้อผิดพลาดจาวาสคริปต์ ตัวอย่างเช่นสมมติว่าคุณมีรหัสvar cartype = $('#cartype').val();หากคุณลบองค์ประกอบที่มี ID = cartypeก่อนบรรทัดของรหัสนั้น js จะแตกบนบรรทัดนั้น อย่างไรก็ตามองค์ประกอบจะยังคงหายไปเมื่อคุณพยายามเรียกใช้รหัสอีกครั้ง เคล็ดลับที่อธิบายไว้ข้างต้นอนุญาตให้คุณเรียกใช้และเรียกใช้โค้ดโฆษณาอีกครั้ง


หมายเหตุเพิ่มเติม:

(a) ใส่เบรกพอยต์ในรหัส: เพียงพิมพ์debugger;บนบรรทัดด้วยตัวเอง หาก DevTools เปิดอยู่สคริปต์จะข้ามไปยังดีบักเกอร์ ณ จุดนั้น หาก DevTools ไม่เปิดขึ้นมาโค้ดจะไม่สนใจคำสั่ง

(b) ต้องการหลีกเลี่ยงการกระโดดลงในไลบรารี jQuery เมื่อทำการดีบั๊กโค้ดหรือไม่ Blackbox มัน ดูคำแนะนำ blackbox สำหรับ Chrome - หรือ - สำหรับ Firefox


ความกตัญญูกตเวที (โปรดไปที่และโหวตขึ้น):

Javascript ดีบักทีละบรรทัดโดยใช้ Google Chrome

เป็นไปได้หรือไม่ที่จะเปลี่ยนค่าตัวแปรจาวาสคริปต์ขณะทำการดีบั๊กใน Google Chrome?


2
Any place where you may wish to quit, test the value of this variableมันช่างน่ากลัวจริงๆ! ฉันต้องการที่จะออกจากที่ใดก็ตามที่ฉันอาจเกิดขึ้นที่จะก้าวไปในขณะนี้ฉันไม่ทราบล่วงหน้าว่าอาจจะเป็น!
Michael

หากคุณยินดีที่จะทำงานด้านโค้ดนี่เป็นมิตรกับผู้ใช้มากที่สุดสำหรับลูกค้าที่พยายามหยุดการทำงานของสคริปต์
Goose

??? คุณไม่ต้องการตัวแปรทั่วโลก เพียงคลิกปุ่มนี้
Dan Dascalescu

0

คุณสามารถหยุดชั่วคราวในรูปแบบ XHR ใด ๆ ที่ฉันพบว่ามีประโยชน์มากในระหว่างการดีบักสถานการณ์ประเภทนี้

ตัวอย่างเช่นฉันได้รับเบรกพอยต์ในรูปแบบ URL ที่มี "/"

ป้อนคำอธิบายรูปภาพที่นี่


0

หากคุณมีวงล้อปลอมให้หยุดรหัสชั่วคราวในโปรแกรมดีบั๊กของ Google Chrome ( ||ปุ่ม " " เล็ก ๆในขณะที่อยู่ในแท็บแหล่งที่มา)

สลับกลับไปที่ Chrome เองเปิด "ตัวจัดการงาน" ( Shift+ESC ) เลือกแท็บของคุณคลิกปุ่ม "สิ้นสุดกระบวนการ"

คุณจะได้รับข้อความ Aww Snap จากนั้นคุณสามารถโหลดซ้ำ ( F5)

ดังที่คนอื่น ๆ ได้กล่าวไว้การโหลดหน้าเว็บอีกครั้งที่จุดหยุดชั่วคราวนั้นเหมือนกับการรีสตาร์ทลูปลูปและอาจทำให้เกิดการล็อกที่น่ารังเกียจหากดีบักเกอร์ยังล็อคอยู่ (ในบางกรณีนำไปสู่การรีสตาร์ท Chrome หรือแม้แต่พีซี) โปรแกรมดีบั๊กจำเป็นต้องมีปุ่ม "หยุด" Nb: คำตอบที่ยอมรับนั้นล้าสมัยในบางแง่มุมของคำตอบที่ผิด ถ้าคุณลงคะแนนฉันลงกรุณาอธิบาย :)


1
มีเป็นวิธีที่ดีกว่า
Dan Dascalescu

-1

เปิดแท็บซอร์สใน 'เครื่องมือสำหรับนักพัฒนา' คลิกที่หมายเลขบรรทัดในสคริปต์ที่กำลังทำงานซึ่งจะสร้างจุดพักและดีบักเกอร์จะแตก


-1

มีวิธีแก้ปัญหาที่เหมาะสมตามที่กล่าวไว้ข้างต้นในโพสต์นี้ แต่ฉันได้พบแฮ็คขนาดเล็กที่สามารถ inserrted ในสคริปต์หรือวางในคอนโซล Chromes (ดีบัก) เพื่อให้บรรลุ:

jQuery(window).keydown(function(e) { if (e.keyCode == 123) debugger; });

F12ซึ่งจะทำให้เกิดการดำเนินการที่จะหยุดชั่วคราวเมื่อคุณกด


ถ้าคุณ (หวังว่า) จะไม่ใช้ jQuery ล่ะ?
Dan Dascalescu

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