การดีบัก JavaScript ใน IE7


160

ฉันต้องดีบัก JavaScript ใน Internet Explorer 7

น่าเสียดายที่ดีบักเกอร์เริ่มต้นนั้นไม่ได้ให้ข้อมูลมากนัก มันบอกหน้าว่าข้อผิดพลาดปรากฏขึ้น (ไม่ใช่สคริปต์ที่เฉพาะเจาะจง) และให้หมายเลขบรรทัดแก่ฉัน ฉันไม่รู้ว่าสิ่งนั้นเกี่ยวข้องกับปัญหาของฉันหรือไม่

มันจะดีถ้ามันแคบลงข้อผิดพลาดกับหมายเลขบรรทัดในสคริปต์เฉพาะ (เช่น Firebug สามารถ)

มี addon เพื่อดีบัก JavaScript ใน IE7 เช่น Firebug ทำใน Firefox หรือไม่?

ขอบคุณ!

ดูสิ่งนี้ด้วย:

IE7 มี“ โหมดผู้พัฒนา” หรือปลั๊กอินเช่น Firefox / Chrome / Safari หรือไม่?

คำตอบ:


90

ผู้ช่วยพัฒนาเว็บไซต์ดีมาก

IE Dev Toolbarมักจะเป็นประโยชน์ แต่น่าเสียดายที่ไม่ได้ทำดีบักสคริปต์


4
อาจสังเกตได้ว่าคุณต้องปิด "ปิดใช้งานการดีบัก" ในตัวเลือกขั้นสูง
Dan Rosenstark

24
ฉันไม่เห็นตัวเลือกการดีบักสคริปต์ในแถบเครื่องมือ Dev Dev และรุ่นล่าสุดของ Web Development Helper ไม่ทำงานแม้ว่าจะเปลี่ยนการตั้งค่าขั้นสูงของฉันแล้วเริ่ม IE7 ใหม่
stevebot

9
ลิงค์ผู้ช่วยพัฒนาเว็บไซต์ที่ระบุไว้ด้านบนนั้นพ้นกำหนด มีใครยืนยันได้ไหมว่านี่เป็นเครื่องมือเดียวกับที่โฮสต์ไว้ที่นี่ softpedia.com/get/Tweak/Browser-Tweak/…
RMorrisey

3
โอ้คนประชด ลิงค์ดาวน์โหลด softpedia สำหรับ Web Dev Helper นั้นเสียชีวิตใน IE7! (ข้อผิดพลาด "Operation Aborted" ผิดพลาด)
Sean McMillan

1
ฉันคิดว่าลิงก์นำไปสู่มัลแวร์
ต้นไม้

41

ความจริงที่ยากคือตัวดีบักที่ดีสำหรับ IE คือ Visual Studio

หากคุณไม่มีเงินสำหรับข้อตกลงจริงให้ดาวน์โหลดVisual Express Developer 2008 Express Edition ฟรีVisual Web Developer 2010 Express EditionEdition ที่ ในขณะที่อดีตอนุญาตให้คุณแนบตัวดีบักเกอร์เพื่อใช้งาน IE อยู่แล้ว แต่ตัวหลังไม่ได้ (อย่างน้อยรุ่นก่อนหน้านี้ที่ฉันใช้ไม่อนุญาต) หากยังคงเป็นเช่นนี้เคล็ดลับคือการสร้างโปรเจ็กต์ง่าย ๆ ด้วยหน้าเว็บเปล่าหนึ่งหน้า "เรียกใช้" (เริ่มต้นเบราว์เซอร์) จากนั้นไปที่หน้าที่คุณต้องการดีบักและเริ่มการดีบัก

Microsoft มอบ Visual Studio แบบเต็มรูปแบบสำหรับเหตุการณ์ที่แตกต่างกันซึ่งมักจะมีข้อ จำกัด ด้านใบอนุญาต แต่อนุญาตให้ใช้งานที่บ้านได้ ตรวจสอบตารางเวลาและรายการของแจกฟรี

คำแนะนำอื่น: พยายามดีบักแอปพลิเคชันเว็บด้วยเบราว์เซอร์อื่นก่อน ฉันประสบความสำเร็จอย่างมากกับ Opera ยังไงก็เถอะการเลียนแบบ IE และ Opera ของ Opera ค่อนข้างใกล้ แต่ตัวดีบักนั้นดีกว่ามาก


2
สำหรับคำแนะนำแบบทีละขั้นโปรดดูที่คำตอบของ @ mitjak
rymo

4
VS ไม่ใช่ตัวดีบักที่ดีเพียงตัวเดียวสำหรับ IE แม้ว่าฉันจะเห็นด้วยว่ามีตัวเสริมที่ดีไม่มากนัก นี่เป็นดีบักเกอร์จาวาสคริปต์เฉพาะสำหรับ IE ที่ฉันใช้มาหลายปีแม้ว่าจะไม่ฟรี: javascript-debugger.com

ลิงก์ไปที่ VS 2008 หายไป ตอนนี้มันไปที่หน้าสำหรับ VS 2012
Sean McMillan

มี VS 2012 Express Edition ซึ่งยังว่างอยู่ (ลิงก์เก่าชี้ไปที่จริง)
Eugene Lazutkin

1
VS2012 Express ต้องการ Windows 7 หากคุณพยายามที่จะดีบัก IE7 นั่นไม่เป็นประโยชน์ สิ่งที่คุณต้องการคือ VS2010 Web Express: microsoft.com/web/gallery/ …
Mike Post

32

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

นี่เป็นการเริ่มต้นที่ดีในการใช้เครื่องมือนี้ด้วย HOW-TO: ดีบัก JavaScript ใน Internet Explorer


ลิงก์ howto ใช้งานไม่ได้ นี่คือลิงค์อัปเดต: jonathanboutelle.com/2006/01/16/…
Dana

เส้นทางการดีบักแรงเสียดทานต่ำเยี่ยมโดยไม่ต้องติดตั้งซอฟต์แวร์ใด ๆ ของบุคคลที่สาม
Jon Hadley

27

ฉันพบDebugBarแล้ว

ไม่ดีเท่า Firebug แต่ปิด


3
ยังคงวิธีที่ดีกว่าคือ dev แถบเครื่องมือ
แซม Saffron

2
ฉันไม่รู้ว่าทำไมนี่ไม่ใช่คำตอบที่ยอมรับได้ ดีกว่าดีบักเกอร์อื่น ๆ สำหรับ IE
Tres

1
ฉันพบ " Companion JS " ฟรีที่กล่าวถึงในเว็บไซต์ของตนเพื่อให้ทำงานได้ดีที่สุด มันบอกคุณอย่างชัดเจนว่าไฟล์ JS & หมายเลขบรรทัดใดที่มีข้อผิดพลาดเกิดขึ้น
Tyler

25

ใน IE7 คุณสามารถเปิด firebug lite สำหรับหน้าปัจจุบันโดยวางต่อไปนี้ในแถบที่อยู่:

javascript:var firebug=document.createElement('script');firebug.setAttribute('src','http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js');document.body.appendChild(firebug);(function(){if(window.firebug.version){firebug.init();}else{setTimeout(arguments.callee);}})();void(firebug);

ดูhttp://getfirebug.com/lite.html


6
Firebug lite ไม่ได้ใช้งาน Javascript
Casebash

ฉันหยุดที่ FireBug lite พร้อมคอนโซลเพื่อดีบัก
Eugene Gluhotorenko

มันมีคอนโซลที่รัน JavaScript ซึ่งเป็นสิ่งที่ฉันกำลังมองหา
Alex W

มีประโยชน์จริงๆในการตรวจสอบองค์ประกอบใน IE 7 ขอบคุณ! :)
Leniel Maccaferri

7

Microsoft Script Editor เป็นตัวเลือกและสิ่งที่ฉันได้ลองมานั้นมีเสถียรภาพมากขึ้น - ตัวดีบักใน IE8 นั้นยอดเยี่ยม แต่ด้วยเหตุผลบางอย่างเมื่อใดก็ตามที่ฉันเริ่มเครื่องมือนักพัฒนาซอฟต์แวร์จะต้องใช้เวลา IE8 ในบางครั้ง นาทีเพื่อตรวจสอบทรี DOM ของหน้าเว็บของฉัน และหลังจากนั้นดูเหมือนว่าต้องการที่จะทำมันในทุกหน้ารีเฟรชซึ่งเป็นการทรมาน

คุณสามารถตรวจสอบเนื้อหาของตัวแปรในโปรแกรมแก้ไขสคริปต์ของ Microsoft: หากคุณโผล่ไปมาภายใต้ดีบั๊ก> หน้าต่างคุณสามารถเปิดการตรวจสอบตัวแปรภายในเครื่อง, ดู ฯลฯ

ตัวเลือกอื่น ๆ Visual Web Dev ในขณะที่ขนาดใหญ่ทำงานได้ดีพอสมควร หากต้องการตั้งค่าให้ทำเช่นนี้ (ถูกขโมยจากที่นี่ ):

  1. การดีบักควรเปิดใน IE ไปที่เครื่องมือ> ตัวเลือกอินเทอร์เน็ต> ขั้นสูงและตรวจสอบว่าไม่ได้ทำเครื่องหมายปิดการใช้งานการดีบักสคริปต์ (Internet Explorer)และแสดงการแจ้งเตือนเกี่ยวกับข้อผิดพลาดสคริปต์ทั้งหมดทั้งหมด
  2. สร้างโครงการเว็บว่างใหม่ภายใน VWD
  3. คลิกขวาที่ไซต์ใน Solutions Explorer ที่ด้านบนขวาไปที่เบราส์ด้วยและตรวจสอบให้แน่ใจว่าเบราว์เซอร์เริ่มต้นของคุณถูกตั้งค่าเป็น IE (มีเหตุผลที่จะถือว่าถ้าคุณเป็นนักพัฒนาเว็บ IE ไม่ใช่เบราว์เซอร์เริ่มต้นของคุณ ที่จะไม่เป็นค่าเริ่มต้น .. โดยค่าเริ่มต้น)
  4. กด F5 แล้ว IE จะเปิดขึ้น เรียกดูหน้าที่คุณต้องการตรวจแก้จุดบกพร่อง
  5. VWD จะเปิดขึ้นเมื่อใดก็ตามที่คุณมีข้อผิดพลาดของสคริปต์หรือถ้าคุณตั้งค่าเบรกพอยต์ในหนึ่งในไฟล์ JS แก้ไขข้อบกพร่อง!

อัปเดต : โดยวิธีถ้าคุณพบการชะลอตัวเช่นเดียวกับฉันกับดีบั๊กของ IE8 มีวิธีแก้ปัญหา - หากคุณพบหรือทำให้ IE พบข้อผิดพลาดเพื่อให้ปรากฏขึ้นบทสนทนา "คุณต้องการที่จะแก้ปัญหา" และ กดใช่โปรแกรมดีบั๊กจะปรากฏขึ้นมาทันที ดูเหมือนว่าหากคุณไป "ตรง" ในโหมดแก้ไขข้อบกพร่องเครื่องมือ Dev ไม่เคยตรวจสอบ DOM มันก็ต่อเมื่อคุณกด F12 เท่านั้น


ฉันต้องทำการทดสอบเพิ่มเติมบางอย่าง แต่จนถึงตอนนี้ดูเหมือนว่าตัวดีบัก IE8 จะทำงานได้เร็วขึ้นเมื่อเรียกดูในโหมดความเข้ากันได้ ไปคิด!
dmkc

1
หากคุณกำลังใช้ VWD เวอร์ชัน Express (ฟรี) ตรวจสอบให้แน่ใจว่าคุณได้ปิดหน้าต่าง IE ทั้งหมดก่อนขั้นตอนที่ 4 - VWD จะต้องเป็นหนึ่งในการเริ่มต้น IE ใหม่เพื่อให้ "เป็นเจ้าของ"
rymo

3

IE8 มีเครื่องมือสำหรับนักพัฒนาที่พัฒนาขึ้นมาก ก่อนหน้านี้จะเป็นการดีที่สุดที่จะเขียน javascript สำหรับ firefox ก่อนแล้วจึง debug IE โดยใช้คำสั่ง alert ()


ไม่สามารถรอ IE8 ได้ (ตราบใดที่มันยังมีชีวิตอยู่ต่อ hype - ฉันยังไม่ได้ดาวน์โหลดเบต้า)
alex

ตอนนี้ว่ามันออกมาฉันได้ udpated และผมต้องบอกว่าผมเหมือนดีบักดียิ่งขึ้นกว่าวางเพลิงของ :)
โจเอล Coehoorn

@Joel ถึงแม้ว่า debugger จะยอดเยี่ยม - สิ่งหนึ่งที่ทำให้ฉันรำคาญ (Firebug มี) เป็นเมนูบริบทคลิกขวาที่คุณสามารถเลือก "ตรวจสอบองค์ประกอบ" สำหรับความรู้ของฉันใน IE8 คุณต้องเปิดเครื่องมือสำหรับนักพัฒนาแล้วคลิกลูกศรจากนั้นค้นหาองค์ประกอบที่คุณต้องการตรวจสอบ
alex

3

Microsoft Script Editor สามารถใช้เพื่อดีบัก Javascript ใน IE มันมีข้อผิดพลาดน้อยกว่า Microsoft Script Debugger แต่มีฟังก์ชั่นพื้นฐานที่เหมือนกันซึ่งน่าเสียดายที่มีข้อ จำกัด ในเรื่องการดำเนินการ ฉันไม่สามารถตรวจสอบตัวแปรหรือสิ่งที่มีประโยชน์เช่นนั้นได้ นอกจากนี้ยังจัดส่งพร้อมกับ Office XP / 2003 ด้วยเหตุผลแปลก ๆ บางอย่างเท่านั้น ข้อมูลเพิ่มเติมที่นี่ถ้าคุณเป็นเกม

ฉันดาวน์โหลด Visual Web Developer 2008 Express Edition ที่กล่าวถึงโดย Eugene Lazutkin แต่ยังไม่มีโอกาสลองใช้ ฉันขอแนะนำให้ลองใช้ก่อนที่จะแก้ไขสคริปต์ / ดีบักเกอร์


3

มันไม่ได้เป็นดีบักเกอร์เต็มรูปแบบ แต่ส่วนขยาย DP_DEBUG ของฉันมีฟังก์ชันการใช้งานที่เป็นประโยชน์ (ฉันคิดว่า) และพวกเขาทำงานใน IE, Firefox และ Opera (9+)

คุณสามารถ "ทิ้ง" การแสดงภาพของวัตถุ JavaScript ที่ซับซ้อน (แม้กระทั่งวัตถุระบบ) ทำการบันทึกและกำหนดเวลาที่ง่ายขึ้น ส่วนประกอบมีวิธีการง่าย ๆ ในการเปิดใช้งานหรือปิดใช้งานเพื่อให้คุณสามารถปล่อยให้ดีบักเกอร์ทำงานแทนได้ถ้าคุณต้องการ

DP_Debug


2

เครื่องมือสำหรับนักพัฒนา IE9 ใช้งานได้สำหรับฉัน เพียงตั้งค่ารายการเมนู "โหมดเบราว์เซอร์" เป็น IE7


7
สิ่งนี้มีประโยชน์ แต่การจำลอง IE7 นั้นไม่เหมือนกัน
alex

ฉันคิดว่ามันขึ้นอยู่กับ ถ้าฉันสามารถทำให้เกิดปัญหาในโหมด emulated ของ IE9 แล้วฉันจะแก้ไขได้ที่นั่น มิฉะนั้น Firebug Lite เป็นทางออกที่ดี - แม้ว่าคุณจะต้องติดตั้ง IE7 ที่ไหนสักแห่ง
Peter Tseng

1

เฮ้ฉันเจอปัญหาเดียวกันและพบแอปพลิเคชันIETESTERนี้ มันยอดเยี่ยมมากมันเป็นแอพที่มี IE 5.5,6 และ 7 รวมอยู่ด้วย ไม่สำคัญว่าคุณใช้ IE เวอร์ชันใดในปัจจุบัน สิ่งนี้ช่วยให้คุณมีหลายรุ่นเคียงข้างกัน

หากคุณเปิดใช้งานการดีบัก javascript ในตัวเลือก IE และติดตั้ง Visual Studio คุณยังสามารถดีบัก javascript ใน VS ด้วยตัวเลือกการดีบักทั้งหมดที่มีให้คุณ (นาฬิกาจุดพักแบบมีเงื่อนไข ฯลฯ )

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

debugger;

ลงในรหัส JS ของคุณและสิ่งนี้จะนำคุณเข้าสู่ VS เพื่อเริ่มแก้ไขข้อผิดพลาดหลังจากข้อความนี้

นี่เป็นสิ่งที่น่าอัศจรรย์อย่างยิ่งสำหรับฉันในการทดสอบความเข้ากันได้แบบย้อนหลังสำหรับรหัส JS


0

ใช้ Internet Explorer 8 จากนั้นลองใช้เครื่องมือนักพัฒนา .. คุณสามารถดีบักตาม IE 7 ได้เช่นกันในโหมดความเข้ากันได้


17
IE7! = โหมดความเข้ากันได้ IE8 มีความเข้ากันไม่ได้
หนาม̈

1
+1 อย่างน้อย IE8 จะบอกชื่อไฟล์ของสคริปต์ที่ทำให้เกิดข้อผิดพลาด
พันเอกสปอนซ

@ หนาม แต่มีโหมด IE7 (อาจจะไม่เคยมีมาก่อน?) ดังนั้น: ปกติ, โหมดความเข้ากันได้, โหมด IE7
Aneves

1
@ANeves เป็นชื่อที่แตกต่างกันในสิ่งเดียวกัน
หนาม̈

4
@ ANAN ดูเหมือนว่า "โหมด IE7" เป็นเพียง "โหมดความเข้ากันได้" โดยมีตัวแทนผู้ใช้เปลี่ยนเป็นที่ใช้โดย IE7 แต่ฉันต้องการเน้นอีกครั้งว่าโหมดความเข้ากันได้นั้นไม่รองรับ เช่น reseting โรงแรมสไตล์ผ่าน jQuery มีลักษณะเช่นนี้ใน IE7 (และเบราว์เซอร์อื่น ๆ $my.css('z-index', null)): ใน IE8 รหัสนี้มีข้อผิดพลาดแม้ในโหมดที่เข้ากันได้ที่เรียกว่า ดังนั้นฉันต้องเขียนโค้ดแบบนี้:$my.css('z-index', ie8 ? 'auto' : null)
หนาม̈

0

จากหน้าแรก: "เข้ากันได้กับเบราว์เซอร์หลักทั้งหมด: IE6 +"
slf

2
Firebug Lite ไม่สนับสนุนการดีบัก javascript
โดมินิค K

@DMan หอบสิทธิ์ของคุณ! ดูเหมือนว่าผู้คนจะเอาชนะสิ่งนี้ได้ด้วย Crossfire: getfirebug.com/developer/api/crossfire0.1/symbols/…
slf

0

คำตอบนั้นง่าย

  1. รับ Internet Explorer 9
  2. กด F12 เพื่อโหลดเครื่องมือสำหรับนักพัฒนา
  3. สลับโหมดเบราว์เซอร์เป็น IE7

เปลี่ยนโหมดเบราว์เซอร์บน IE9


6
เพราะมันไม่น่าเชื่อถือ :( ตั๋วที่เปิดอยู่ทั้งหมดในโครงการปัจจุบันของฉันที่เชื่อมต่อกับ IE7 นั้นไม่สามารถทำซ้ำได้ใน Vista ของ Windows 7
AlfeG

4
อาจเป็นประโยชน์หากข้อผิดพลาดสามารถทำซ้ำได้ แต่มีข้อผิดพลาดบางอย่างที่ไม่เกิดขึ้นใน IE9 ที่มีโหมด IE7 แต่ใน IE7 ดั้งเดิม (เหมือนกันสำหรับ IE8)
yunzen

0

การรันโค้ดของคุณผ่านเครื่องมือวิเคราะห์แบบสแตติกของ Javascript เช่นJSLintสามารถตรวจพบข้อผิดพลาดทั่วไปของ IE7 เช่นคอมม่าต่อท้ายในนิยามวัตถุ



0

หากคุณยังคงต้อง Debug IE 7 โหมดการจำลองของ IE 11 ทำงานได้ค่อนข้างดี

ไปที่เมนู: เครื่องมือ Dev จากนั้นทำการจำลองและตั้งค่า นอกจากนี้ยังให้ข้อมูลบรรทัดข้อผิดพลาด


-1

เครื่องมือต่อไปนี้ใช้งานได้ดีสำหรับฉัน:

1) http://www.debugbar.com/

มอบ UI ความสะดวกสบายให้กับคุณสมบัติเช่นแหล่งที่มา, สไตล์, DOM, สคริปต์, การตรวจสอบ HTML นอกจากนี้ยังแสดงข้อผิดพลาดที่เกิดขึ้นจริงในไฟล์ JS ของคุณ (บรรทัดใดไฟล์ไหน)

2) http://www.my-debugbar.com/wiki/CompanionJS/Installing

ระบุคอนโซลสำหรับ IE6 หรือ IE7 (ซึ่ง แต่เดิมไม่รองรับ)

  • ภาพหน้าจอ

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

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