Chỉnh sửa trong trình gỡ lỗi Chrome


247

Làm cách nào để tôi "tự động" chỉnh sửa mã JavaScript trong trình gỡ lỗi Chrome? Nó không dành cho tôi, vì vậy tôi không có quyền truy cập vào tệp nguồn. Tôi muốn chỉnh sửa mã và xem những hiệu ứng họ có trên trang, trong trường hợp này ngăn chặn một hình ảnh động xếp hàng một loạt các lần.


5
Bạn có thể sử dụng Opera. Opera cho phép chỉnh sửa các tệp JS. Sau khi bạn tải lại trang, các thay đổi của bạn sẽ được áp dụng. Nhấp chuột phải> Nguồn> Thực hiện thay đổi> Áp dụng thay đổi.
XP1

Đây là một hướng dẫn tuyệt vời cho trình gỡ lỗi Chrome. Nó cho thấy các bước rất đơn giản để thực hiện các thay đổi trong trình gỡ lỗi đối với các tập lệnh của bạn.
SaganRitual

1
Bạn cũng có thể "tiêm" mã thông qua điểm dừng có điều kiện . Trong ví dụ đã cho, sử dụng num = 5, console.log(arguments[0], num), falseđể cập nhật và ghi lại giá trị bên trong foohàm.
mems

Câu trả lời:


80

Bạn có thể sử dụng trình gỡ lỗi JavaScript tích hợp trong Công cụ dành cho nhà phát triển Chrome trong tab "Tập lệnh" (trong các phiên bản sau đó là tab "Nguồn"), nhưng những thay đổi bạn áp dụng cho mã chỉ được thể hiện tại thời điểm thực thi đi qua chúng. Điều đó có nghĩa là những thay đổi đối với mã không chạy sau khi tải trang sẽ không có hiệu lực. Không giống như các thay đổi đối với mã nằm trong trình xử lý di chuột , bạn có thể kiểm tra nhanh chóng.

Có một video từ sự kiện Google I / O 2010 giới thiệu các khả năng khác của Công cụ dành cho nhà phát triển Chrome.


26
Trong các phiên bản sau của Chrome, các biểu tượng tab đã biến mất và tab 'Tập lệnh' được đổi tên thành 'Nguồn' - vì vậy có thể không rõ ràng để tìm trình gỡ lỗi javascript. Một số thông tin khác ở đây stackoverflow.com/questions/12113769/
Ấn

9
Không có phương pháp như vậy. Tôi cũng không thể sửa đổi mã trong tab Nguồn.
Melab

17
Trình gỡ lỗi Chrome không cho phép sửa đổi javascript cục bộ. Sai.
omike

1
@oMiKeY Thế nào là sai? Chrome chắc chắn không cho phép sửa đổi tập lệnh trong trình gỡ lỗi.
JLRishe

6
@oMiKeY bạn có thể sửa đổi nếu tập lệnh không được chỉnh sửa
peterchaula

283

Tôi đã bắt gặp điều này ngày hôm nay, khi tôi đang chơi xung quanh trang web của người khác.

Tôi nhận ra tôi có thể đính kèm một điểm dừng trong trình gỡ lỗi vào một số dòng mã trước khi tôi muốn chỉnh sửa động. Và vì các điểm dừng vẫn ở ngay cả sau khi tải lại trang , tôi có thể chỉnh sửa các thay đổi tôi muốn trong khi tạm dừng tại điểm dừng và sau đó tiếp tục để tải trang.

Vì vậy, như một công việc nhanh chóng xung quanh, và nếu nó hoạt động với tình huống của bạn:

  1. Thêm một điểm dừng tại một điểm trước đó trong kịch bản
  2. Trang tải lại
  3. Chỉnh sửa các thay đổi của bạn thành mã
  4. CTRL + s (lưu thay đổi)
  5. Bỏ tạm dừng trình gỡ lỗi

1
Cảm ơn! Tôi thấy điều này hoạt động khi cần thực hiện các thay đổi trong chức năng ẩn danh tự thực thi được gọi là ngay gần tải trang.
Peter

1
Argh, bởi vì tôi đã thử điều này sớm hơn và nó không hoạt động và mặc dù trời ơi, làm thế nào tôi bỏ lỡ nó. Nhưng vâng, không làm việc cho tôi.
Jamie Hutber

8
Điều quan trọng đối với tôi là phải biết rằng những thay đổi nên được lưu lại (bước 4). Cảm ơn!
Serge Goliney

3
Không hoạt động trên javascript trong các tệp html cho tôi. Ngoài ra, nếu bạn đã thêm một thư mục vào không gian làm việc, hãy chọn tệp js cục bộ , nhấp chuột phải và ánh xạ tệp đó vào mạng dito.
oo

1
Vì vậy, không có cách nào để sửa đổi các tập lệnh trong các tập tin html?
Chiến binh

13

Đây là những gì bạn đang tìm kiếm:

1.- Điều hướng đến tab Nguồn và mở tệp javascript

2.- Chỉnh sửa tập tin, nhấp chuột phải vào nó và một menu sẽ xuất hiện: nhấp vào Lưu và lưu cục bộ.

Để xem khác biệt hoặc hoàn nguyên các thay đổi của bạn, nhấp chuột phải và chọn tùy chọn Sửa đổi cục bộ ... từ menu. Bạn sẽ thấy các thay đổi của mình khác với tệp gốc nếu bạn mở rộng dấu thời gian được hiển thị.

Thông tin chi tiết tại đây: http://www.sitepoint.com/edit-source-files-in-chrom/


5

Khá dễ dàng, hãy chuyển đến tab 'scripts'. Và chọn tệp nguồn bạn muốn và bấm đúp vào bất kỳ dòng nào để chỉnh sửa nó.


4
Thật tuyệt vời nếu bạn có thể lưu các thay đổi vào đĩa trong trường hợp tệp: // URL
Jim Blackler

3
Đó chính xác là những gì tôi đã làm, nhưng những thay đổi không được phản ánh trên trang, như người ta mong đợi. Tôi cần thay đổi $ (bộ chọn) .fadeIn () ... thành $ (bộ chọn) .stop (đúng, đúng) .fadeIn () ... Bạn biết không? Và tôi muốn có thể thấy điều đó xảy ra trên trang.
Tom

1
Ôi chết tiệt, bạn nói đúng. Bây giờ tôi tự hỏi tại sao Chrome cho phép chúng tôi chỉnh sửa bất cứ điều gì nếu nó không có hiệu lực ..
gnur

"Lưu dưới dạng ..." chỉ lưu tệp vào máy tính của bạn. Nó không áp dụng các thay đổi sau khi trang được tải lại. Nếu bạn muốn áp dụng các thay đổi cho các tệp JS để gỡ lỗi, bạn có thể sử dụng Opera.
XP1

1
và cái này được gọi là tincr: chrome.google.com/webstore/detail/,
JustGoscha

3

Vì đây là câu hỏi khá phổ biến liên quan đến chỉnh sửa trực tiếp JS, tôi muốn chỉ ra một tùy chọn hữu ích khác. Theo mô tả của svjacob trong câu trả lời của mình:

Tôi nhận ra rằng tôi có thể đính kèm một điểm dừng trong trình gỡ lỗi vào một số dòng mã trước khi tôi muốn chỉnh sửa động. Và vì các điểm dừng ở ngay cả sau khi tải lại trang, tôi có thể chỉnh sửa các thay đổi tôi muốn trong khi tạm dừng tại điểm dừng và sau đó tiếp tục cho phép tải trang.

Giải pháp trên không phù hợp với tôi đối với JS khá lớn (gói webpack - phiên bản rút gọn 3,21 MB, 130k dòng mã trong phiên bản được chỉnh sửa) - chrome bị lỗi và yêu cầu tải lại trang mà hoàn nguyên mọi thay đổi đã lưu. Cách thực hiện trong trường hợp này là Fiddler nơi bạn có thể đặt tùy chọn Tự động tương ứng để thay thế bất kỳ tài nguyên từ xa nào bằng bất kỳ tệp cục bộ nào từ máy tính của bạn - xem câu hỏi SO này để biết chi tiết .

Trong trường hợp của tôi, tôi cũng đã phải thêm các tiêu đề CORS vào fiddler để phản hồi giả thành công.


2

Nếu javascript của nó chạy trên một nút bấm, thì thực hiện thay đổi trong Nguồn> Nguồn (trong công cụ dành cho nhà phát triển bằng chrome) và nhấn Ctrl + S để lưu, là đủ . Tôi làm điều này tất cả các thời gian.

Nếu bạn làm mới trang, các thay đổi javascript của bạn sẽ không còn nữa, nhưng chrome vẫn sẽ nhớ các điểm dừng của bạn.


2

Bây giờ google chrome đã giới thiệu tính năng mới. Bằng cách sử dụng tính năng này Bạn có thể chỉnh sửa mã của mình trong trình duyệt chrome. (Thay đổi vĩnh viễn về vị trí mã)

Đối với điều đó Nhấn F12 -> Tab nguồn - (bên phải) -> Hệ thống tệp - trong đó vui lòng chọn vị trí mã của bạn. và sau đó trình duyệt chrome sẽ yêu cầu bạn cho phép và sau đó mã đó sẽ chìm với màu xanh lục. và bạn có thể sửa đổi mã của mình và nó cũng sẽ phản ánh vị trí mã của bạn (Điều đó có nghĩa là nó sẽ thay đổi vĩnh viễn)

Cảm ơn


2

Giống như câu trả lời của @mark, chúng tôi có thể tạo Đoạn trích trong DevTools của Chrome, overridetheo JavaScript mặc định. Cuối cùng, chúng ta có thể thấy những hiệu ứng họ có trên trang.

Hình ảnh


1

Dưới đây là một giới thiệu nhẹ nhàng về trình gỡ lỗi js trong chrome mà tôi đã viết. Có lẽ nó sẽ giúp những người khác đang tìm kiếm thông tin về điều này: http://meeech.amihod.com/getting-started-with-javascript-debugging-in-chrom/


1
Đó là một bài viết tốt. Thật không may, nó không nói gì về việc chỉnh sửa JS trong trình gỡ lỗi, đây là nhiệm vụ được đề cập.
Bruno Bronosky 17/12/13

Không đồng ý. Cuối cùng, bạn sẽ thấy ví dụ cụ thể về cách "" động "chỉnh sửa mã JavaScript trong trình gỡ lỗi Chrome", đây là một phần của câu hỏi.
meeech

1
meeech, trừ khi tôi hiểu nhầm bạn đăng, bạn trình bày cách đánh giá JS tại bàn điều khiển. Điều đó khác với việc chỉnh sửa một chức năng để khi chức năng được gọi trong tương lai, nó hoạt động khác đi.
Bruno Bronosky

Đủ công bằng. Tôi hiểu chỉnh sửa có nghĩa là thay đổi xung quanh các giá trị của trang trực tiếp và nghĩ rằng việc viết lên sẽ giúp ích, vì một khi bạn đã có nó trong bảng điều khiển, bạn có thể chơi xung quanh với các giá trị và bất kỳ điều gì khác js trong ngữ cảnh thực thi.
meeech

1
vâng, meeech, tôi đã làm chính xác những gì bạn mô tả trong nhiều năm. Cuối cùng tôi đã nản lòng vì không thể đạt được một vòng phản hồi tốt để thay đổi các trình xử lý sự kiện. Đặc biệt là những người kích hoạt trong quá trình tải trang. Như AaronLS và tôi đã thảo luận trong các bình luận về câu trả lời của gnur, đôi khi chỉnh sửa trong DevTools> Nguồn> Nguồn hoạt động và những lần khác thì không. Nhưng khi nó hoạt động, nó thật ngọt ngào!
Bruno Bronosky

1

bạn có thể chỉnh sửa động các tệp javascrpit trong trình gỡ lỗi Chrome, trong tab Nguồn , tuy nhiên các thay đổi của bạn sẽ bị mất nếu bạn làm mới trang, để tạm dừng tải trang trước khi thực hiện các thay đổi, bạn sẽ cần đặt điểm dừng sau đó tải lại trang và chỉnh sửa các thay đổi của bạn và cuối cùng bỏ tạm dừng trình gỡ lỗi để xem các thay đổi của bạn có hiệu lực. Trình gỡ lỗi Chrome


bạn phải giữ cho giao diện điều khiển mở để chrome sẽ dừng ở các điểm dừng, chrome khác sẽ bỏ qua các điểm dừng
Seif Tamallah

không làm việc. Tôi tải lại bằng F5 và nó dừng lại, tôi thay đổi tệp, sau đó tôi tiếp tục chạy và tôi gặp lỗi tương tự tôi vừa sửa. Đó là một tệp js bên cạnh trang chính.,
darkgaze

1

Tôi đang tìm cách thay đổi tập lệnh và gỡ lỗi tập lệnh mới đó. Cách tôi quản lý để làm điều đó là:

  1. Đặt điểm dừng trong dòng đầu tiên của tập lệnh bạn muốn thay đổi và gỡ lỗi.

  2. Tải lại trang để điểm dừng đang được nhấn

  3. Dán tập lệnh mới của bạn và đặt các điểm dừng mong muốn trong đó

  4. Ctrl + s và trang sẽ làm mới khiến điểm dừng ở dòng đầu tiên bị nhấn.

  5. F8 để tiếp tục, và bây giờ tập lệnh mới được dán của bạn thay thế tập lệnh gốc miễn là không có chuyển hướng và tải lại được thực hiện.



0

Bạn có thể sử dụng "Ghi đè" trong Chrome để duy trì các thay đổi javascript giữa các lần tải trang, ngay cả khi bạn không lưu trữ nguồn gốc.

  1. Tạo thư mục trong Công cụ dành cho nhà phát triển> Nguồn> Ghi đè
  2. Chrome sẽ yêu cầu cấp phép cho thư mục, nhấp Cho phép
  3. Chỉnh sửa tệp trong Nguồn> Trang sau đó lưu (ctrl-s). Dấu chấm màu tím sẽ cho biết tệp được lưu cục bộ.

Tab phụ Ghi đè trong Công cụ dành cho nhà phát triển Chrome

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.