Làm cách nào để bật gỡ lỗi javascript trong internet explorer?

Trong Visual Studio 2019, Microsoft đã xóa Bảng điều khiển JavaScript khỏi sản phẩm, vì vậy, mặc dù bạn vẫn có thể xem qua mã, xem ngăn xếp cuộc gọi và xem các biến, nhưng bạn không còn có thể xem đầu ra console.log(), cũng như thực thi động mã hoặc xem các biến của bảng điều khiển. Bạn có thể tiếp tục sử dụng các tính năng này trong VS2017 và vì lý do này, tôi duy trì cài đặt VS2017 của mình

Nếu tính năng này quan trọng đối với bạn, vui lòng gửi phản hồi trong Visual Studio thông qua tùy chọn Phản hồi → Yêu cầu tính năng và cho Microsoft biết bạn muốn tính năng này trở lại trong VS2019 và hơn thế nữa

Gỡ lỗi điều khiển Trình duyệt web nhúng trong ứng dụng Windows có thể là một điều khó khăn. Điều khiển Trình duyệt web về cơ bản là một phiên bản nhúng của công cụ Internet Explorer, nhưng nó thiếu bất kỳ công cụ hỗ trợ (F12) nào để gỡ lỗi

Một vài tháng trước, tôi đã đăng bài về việc sử dụng Firebug Lite để cung cấp ít nhất đầu ra Bảng điều khiển cho logic dựa trên JavaScript/HTML của bạn. Điều này về cơ bản cung cấp một bảng điều khiển tích hợp - dựa trên JavaScript nội tuyến - với sự hỗ trợ đầy đủ cho đầu ra ghi nhật ký bảng điều khiển bao gồm quyền truy cập sâu vào cây đối tượng cho các biến. Nếu tất cả những gì bạn cần là truy cập một vài giá trị đơn giản để kiểm tra trạng thái hoặc các cài đặt thông tin khác, đây chắc chắn là một cách nhanh chóng và dễ thực hiện

Visual Studio Studio Gỡ lỗi HTML

Nhưng nếu bạn cần gỡ lỗi mã phức tạp hơn, thì việc sử dụng đầu ra dựa trên Bảng điều khiển chỉ có thể giúp bạn tiến xa hơn. Vài ngày trước, tôi đã đưa một lỗi hồi quy vào mã kiểm tra chính tả trong Markdown Monster và thật khó để gỡ lỗi. Gỡ lỗi bảng điều khiển khiến tôi phải chạy trong vòng kết nối

Làm cách nào để bật gỡ lỗi javascript trong internet explorer?

Cũng trong khoảng thời gian đó, tình cờ đề cập rằng bạn có thể sử dụng tính năng gỡ lỗi tập lệnh trong ứng dụng EXE bằng cách đính kèm trình gỡ lỗi bên ngoài vào EXE, sau đó chọn Trình gỡ lỗi tập lệnh. Một chút thử nghiệm xảy ra sau đó

Tôi mơ hồ biết rằng Visual Studio có thể gỡ lỗi mã Internet Explorer, nhưng không ghép các phần lại với nhau để xem cách thực hiện việc này với các ứng dụng của riêng tôi như Markdown Monster đang chạy một trình điều khiển Trình duyệt web nhúng. Điều đó không xảy ra với tôi vì các dự án Windows độc lập như ứng dụng WPF không cung cấp tính năng gỡ lỗi tập lệnh như một phần của giao diện người dùng gỡ lỗi

Có hai cách để làm điều này

Đính kèm trình gỡ lỗi

Bạn có thể khởi động Visual Studio và đính kèm trình gỡ lỗi vào ứng dụng đang chạy có lưu trữ điều khiển Trình duyệt web và chỉ định bạn muốn gỡ lỗi mã Tập lệnh. Điều này hoạt động, nhưng hơi tẻ nhạt vì bạn cần đính kèm trình gỡ lỗi một cách rõ ràng vào quy trình đang chạy để thực hiện điều đó. Nhưng vì bạn đang đính kèm vào một quy trình, nên nó hoạt động với bất kỳ loại ứng dụng EXE nào, không chỉ. NET và nó hoạt động ngay cả khi bạn không thể thay đổi và đặt điểm ngắt trong mã tập lệnh

Để thiết lập điều này

  • Khởi động ứng dụng của bạn từ Explorer hoặc Dòng lệnh
  • Trong Visual Studio, sử dụng Tools->Attach to Process
  • Đính kèm Trình gỡ lỗi vào Mã tập lệnh
  • Chọn EXE của bạn từ danh sách Quy trình

Đây là giao diện của Hộp thoại Đính kèm

Làm cách nào để bật gỡ lỗi javascript trong internet explorer?

Break on Lỗi Tùy chọn Internet Explorer

Điều khiển Trình duyệt web về cơ bản là Internet Explorer nhúng nên các tùy chọn của Internet Explorer cũng xác định hành vi của Trình duyệt web. Một trong các tùy chọn có sẵn cho phép bạn bật gỡ lỗi tập lệnh. Trên thực tế, nó giống như vô hiệu hóa tùy chọn mặc định gỡ lỗi tập lệnh 😃

Để làm điều này

  • Mở Internet Explorer
  • Chuyển đến Cài đặt
  • Chuyển đến tab Nâng cao
  • Đặt cả Vô hiệu hóa gỡ lỗi tập lệnh thành bỏ chọn

Làm cách nào để bật gỡ lỗi javascript trong internet explorer?

Sau khi được bật, bạn có thể đặt các điểm dừng debugger trong mã tập lệnh của mình và buộc một hộp thoại cho phép bạn chọn trình gỡ lỗi mà bạn muốn sử dụng

Làm cách nào để bật gỡ lỗi javascript trong internet explorer?

và điều đó sẽ đưa bạn đến ngay điểm dừng của bạn trong Visual Studio

Hộp thoại Gỡ lỗi Tập lệnh bật lên trên Tất cả Lỗi

Lưu ý rằng khi tính năng gỡ lỗi tập lệnh được bật như thế này, bất kỳ lỗi nào trong mã JavaScript sẽ kích hoạt hộp thoại này

Làm cách nào để bật gỡ lỗi javascript trong internet explorer?

Bên trong Visual Studio

Khi trình gỡ lỗi được đính kèm, Visual Studio sẽ tự động theo dõi bất kỳ tập lệnh nào đang chạy trong phần Tài liệu tập lệnh trong Solution Explorer và bạn có thể mở tài liệu từ đó

Markdown Monster sử dụng HTML cho trình chỉnh sửa Markdown và cả bản xem trước để cả hai trang này và tập lệnh của chúng hiển thị ngay trong phần Tài liệu tập lệnh

Bây giờ để gỡ lỗi mã

  • Mở tệp tập lệnh từ Tài liệu tập lệnh (không phải từ dự án của bạn. )
  • Đặt điểm ngắt ở bất cứ đâu
  • Chạy mã của bạn đến điểm dừng
  • Kiểm tra các biến bằng cách di chuột
  • Sửa sheiit bị hỏng
  • Tiếp tục với bản thân xấu của bạn

Để mở Bảng điều khiển JavaScript và DOM Explorer

  • Nhập Bảng điều khiển JavaScript vào Quick Launch
  • Nhập DOM Explorer vào Quick Launch

Đây là tất cả những thứ này (trừ DOM Explorer) trông như thế nào trong Visual Studio

Làm cách nào để bật gỡ lỗi javascript trong internet explorer?

Khi bạn đã đặt điểm dừng, bạn có thể kiểm tra các biến và đi sâu vào các đối tượng giống như bạn muốn thực hiện trong Visual Studio

Bạn cũng có thể mở Bảng điều khiển JavaScript cho phép bạn truy cập tương tác vào tài liệu và mã tập lệnh chạy trong đó - giống như bạn làm với các công cụ F12 thông thường trong Internet Explorer. Ngoài ra còn có một DOM Explorer cho phép bạn đi sâu vào cây DOM và CSS của bất kỳ tài liệu mở nào. Hai tính năng này sử dụng cùng một công cụ F12 mà bạn sử dụng trong Internet Explorer đầy đủ, chỉ được đưa vào Visual Studio. Thông thường, điều này sẽ không thú vị lắm vì các công cụ F12 hoạt động tốt trong IE, nhưng vì Kiểm soát trình duyệt web không có trình bao và do đó không hỗ trợ các công cụ F12, điều này lấp đầy một lỗ hổng lớn trong quá trình phát triển Kiểm soát trình duyệt web

Xem nơi bạn thực hiện Thay đổi mã

Nếu bạn nhìn vào ảnh chụp màn hình của tôi, bạn có thể thấy rằng tệp tập lệnh được gỡ lỗi đang mở và tôi có thể chỉnh sửa tệp này cũng như thực hiện các thay đổi - nếu tôi tải lại trang (hoặc mở một tài liệu mới trong Markdown Monster chẳng hạn) thì thay đổi sẽ hiển thị trong

Nhưng hãy lưu ý rằng đường dẫn đến tệp script sẽ nằm trong thư mục triển khai của ứng dụng, không phải tệp có thể nằm trong dự án của bạn

Trong Markdown Monster, mã JavaScript Trình chỉnh sửa và Xem trước là một phần của tôi. NET dưới dạng các tệp nội dung được sao chép vào thư mục đầu ra khi dự án xây dựng

Khi bạn gỡ lỗi bằng trình gỡ lỗi Visual Studio, các tệp trong Tài liệu tập lệnh là các tệp thực tế đang chạy, nằm trong thư mục triển khai (tức là. \bin\Release). Vì vậy, nếu bạn thực hiện các thay đổi đối với tệp tập lệnh, hãy đảm bảo rằng bạn sao chép các thay đổi đó trở lại thư mục dự án của mình sau khi gỡ lỗi xong, nếu không, các thay đổi sẽ bị ghi đè vào lần biên dịch dự án tiếp theo của bạn

Mày đã được cảnh báo. 😃

Tôi nói điều này bởi vì trước đây tôi đã làm điều này hơn một vài lần - sửa lỗi các tệp của tôi đã thực hiện một số thay đổi, sau đó biên dịch lại. dự án NET và. Faaaark. , tôi vừa ghi đè lên những thay đổi của mình. Đừng để điều đó xảy ra với bạn

Gỡ lỗi này

Có hỗ trợ gỡ lỗi đầy đủ cho Điều khiển trình duyệt web trong các ứng dụng Windows của riêng tôi sẽ giúp cuộc sống của tôi dễ dàng hơn rất nhiều. Tôi đã thực hiện gỡ lỗi dựa trên đầu ra của Bảng điều khiển trong một thời gian dài và mặc dù đó là một bước tiến lớn từ việc không hỗ trợ gỡ lỗi nào cả nhưng nó có thể rất tẻ nhạt. Sử dụng trình gỡ lỗi đầy đủ là một bước tiến lớn khi xử lý mã phức tạp hơn trong JavaScript

Sau khi tôi kết nối trình gỡ lỗi trong Visual Studio, tôi đã tìm thấy sự cố Kiểm tra chính tả của mình trong Markdown Monster chỉ trong vài phút sau khi trước đó đã dành hơn một giờ cố gắng tìm đúng lệnh gọi console.log() để thử và tìm ra lỗi

Đính kèm vào Quy trình hơi tẻ nhạt nhưng nó hoạt động với bất kỳ tệp thực thi nào - nó không nhất thiết phải là một. NET như ứng dụng WPF Markdown Monster của tôi. Tôi có một ứng dụng FoxPro cũ cũng sử dụng điều khiển Trình duyệt web và tôi có thể gỡ lỗi mã HTML/JavaScript theo cách tương tự trong Visual Studio. Heck ngay cả một trình duyệt web ứng dụng MFC cũ cũng có thể gỡ lỗi theo cách này

Thiết lập Tùy chọn Internet Explorer có lẽ là cách tốt hơn nếu bạn kiểm soát mã tập lệnh mà bạn đang gỡ lỗi vì bạn chỉ cần kích hoạt nó và đặt các điểm dừng bằng câu lệnh debugger để truy cập Visual Studio để gỡ lỗi. Bây giờ tôi thấy mình chủ yếu sử dụng phương pháp này, sau khi tôi quên cách bật nó trong các tùy chọn IE (nhờ nhận xét của Ian)

Điều gì sẽ tốt hơn nữa nếu Visual Studio cho phép bạn gỡ lỗi mã Script như một phần của việc chạy. NET, nhưng đáng buồn là tùy chọn đó không khả dụng nên cần có một trong các cách tiếp cận khác để truy cập vào trình gỡ lỗi tập lệnh của Visual Studio

Thật tuyệt vời. Cảm ơn vì đã chỉ cho tôi đi đúng hướng

Làm cách nào để bật gỡ lỗi javascript trong internet explorer?
bài đăng này được tạo bằng Markdown Monster

Các bài viết khác có thể bạn thích

  • Sử dụng Điều khiển Chromium WebView2 mới để quay trong. NET - Phần 1
  • Kiểm soát Chromium WebView2 và. NET sang JavaScript Interop - Phần 2
  • Xử lý sự kiện Async và Async Void trong WPF
  • Đặt độ phân giải. Đặt độ phân giải màn hình Windows từ Terminal

Chia sẻ

Làm cách nào để bật gỡ lỗi javascript trong internet explorer?

Nội dung này có hữu ích với bạn không?

Đã đăng trong Kiểm soát trình duyệt web  Windows  Visual Studio  WPF  Internet Explorer


Tiếng nói của lý trí


 


Ian Oxley
Ngày 18 tháng 7 năm 2017

lại. Gỡ lỗi JavaScript trong Điều khiển trình duyệt web với Visual Studio

Tôi nhớ việc gỡ lỗi JavaScript trong điều khiển WebBrowser là một việc khó khăn. Cách tôi có Visual Studio để gỡ lỗi hơi khác so với những gì bạn đã nêu ở trên

  1. Đảm bảo tính năng gỡ lỗi tập lệnh được bật trong Internet Explorer (đồng thời khởi động lại IE và ứng dụng của bạn bằng điều khiển WebBrowser nếu ứng dụng đang chạy)
  2. Thêm câu lệnh debugger vào mã JavaScript của bạn
  3. Khởi động lại ứng dụng

Khi chạm vào câu lệnh debugger, hộp thoại sẽ bật lên hỏi bạn có muốn gỡ lỗi bằng phiên bản hiện tại của Visual Studio, v.v.


Tony
20 tháng 7 năm 2017

lại. Gỡ lỗi JavaScript trong Điều khiển trình duyệt web với Visual Studio

Tôi có ứng dụng WinForms sử dụng điều khiển WebBrowser tải tệp html bằng tệp. \ tải trình soạn thảo html của bên thứ ba. Tôi không thấy "Tài liệu tập lệnh" trong Solution Explorer trong khi gỡ lỗi. Điều này sẽ không chỉ hiển thị cho các dự án web?


Trent
28 tháng 9 năm 2017

lại. Gỡ lỗi JavaScript trong Điều khiển trình duyệt web với Visual Studio

Trước đây, tôi đã gặp sự cố tương tự khi cố gắng gỡ lỗi tập lệnh được nhúng trong một. ứng dụng NET. Bạn thực sự có thể làm cho việc gỡ lỗi tập lệnh nhúng dễ dàng hơn bằng cách tạo "Dự án trống" C++ trong Visual Studio. Sau đó, bạn có thể đặt dự án để chạy một ứng dụng bên ngoài, chẳng hạn như đầu ra bản dựng từ một dự án khác trong giải pháp của bạn và đặt trực tiếp dự án C++ để gỡ lỗi Tập lệnh. Cuối cùng, đặt dự án C++ làm dự án Khởi động của bạn

Mất vài phút để thiết lập, nhưng cuối cùng, bạn chỉ cần F5 giải pháp của mình, đặt điểm ngắt trong tập lệnh và xem nó ngắt ngay tại nơi bạn muốn. Tất nhiên, nhược điểm của phương pháp này là bạn phải cài đặt các thành phần Visual C++


Edward Brey
Ngày 25 tháng 7 năm 2018

lại. Gỡ lỗi JavaScript trong Điều khiển trình duyệt web với Visual Studio

Trước khi gỡ lỗi tập lệnh hoạt động, bạn có thể cần vào các tùy chọn của Internet Explorer và tắt "Gỡ lỗi tập lệnh" trong tab Nâng cao


Rick Strahl
29 tháng 7 năm 2018

lại. Gỡ lỗi JavaScript trong Điều khiển trình duyệt web với Visual Studio

Hừm. làm việc cho tôi mà không có điều đó. Tôi nghĩ Visual Studio thiết lập điều đó bằng cách nào đó, mặc dù nó có thể yêu cầu chạy dưới quyền Quản trị viên để nó hoạt động


Stanislav
Ngày 28 tháng 5 năm 2020

lại. Gỡ lỗi JavaScript trong Điều khiển trình duyệt web với Visual Studio

Tôi thích sử dụng Codelobster để gỡ lỗi JavaScript hơn


Craig Boyd
Ngày 28 tháng 7 năm 2020

lại. Gỡ lỗi JavaScript trong Điều khiển trình duyệt web với Visual Studio

Bài báo này vừa cứu tôi. Tốt nhìn ra ngoài Rick


Johnx
08 tháng 8 năm 2022

lại. Gỡ lỗi JavaScript trong Điều khiển trình duyệt web với Visual Studio

Có một cờ IE khác trong các tùy chọn ở trên cũng hữu ích, nó được che ở dưới cùng của hộp màu đỏ và được mặc định tắt. Bạn có thể 'kích hoạt' tùy chọn được 'thông báo về mọi lỗi tập lệnh' (rất nhiều cửa sổ bật lên). Cho bạn biết file/line#/errormsg. Theo mặc định, bạn không thể chuyển sang trình gỡ lỗi, trừ khi được đính kèm, nhưng điều này sẽ bật ra các gợi ý và dòng chính xác của #. Thật hữu ích


Rick Strahl
Ngày 09 tháng 8 năm 2022

lại. Gỡ lỗi JavaScript trong Điều khiển trình duyệt web với Visual Studio

@Johnx - yup, nhưng hộp thoại đó rất ồn ào và trình gỡ lỗi có bật lên hay không tùy thuộc vào cài đặt cấu hình và bảo mật - nó rất không đáng tin cậy và gây phiền nhiễu nếu bạn quên tắt nó. Tôi nghĩ tốt nhất là không nên muck với cái đó