Ngắt javascript trước khi chuyển hướng javascript nội tuyến trong Chrome


91

Tôi đang xem một trang có chuyển hướng javascript nội tuyến ( window.location = "/anotherpage"). Tôi muốn tải trang trong Chrome nhưng đã tắt dòng chuyển hướng, vì vậy tôi có thể sử dụng trang mà không bị chuyển hướng.

Đây là những gì tôi đã thử:

  • Công cụ dành cho nhà phát triển -> Cog -> Chung -> Tắt JavaScript. Tải trang. Nó không chuyển hướng (yay!). Nhưng tôi vẫn muốn phần còn lại của javascript của trang chạy, và nó đã không.

  • Nhập URL, sau đó nhấp vào Công cụ dành cho nhà phát triển -> Nguồn -> Tạm dừng (F8) rất nhanh! Nó vẫn chưa chuyển hướng (yay!) Bây giờ tôi muốn tắt dòng chuyển hướng trước khi bỏ tạm dừng, nhưng phần đó thậm chí vẫn chưa được tải vào Công cụ dành cho nhà phát triển. Vì vậy, tôi sẽ bắt đầu bước qua các tệp khác mã javascript cho đến khi tôi đến đó ?? Nhưng ngay khi tôi bước ra khỏi các tệp javascript khác, nó lập tức chuyển hướng đi (doh!).

Điều này có thể được thực hiện? Tôi nghĩ có thể dễ dàng tắt một dòng javascript, nhưng tôi rất bối rối.

Câu trả lời:


142

Công cụ dành cho nhà phát triển -> Nguồn -> Điểm ngắt của trình xử lý sự kiện (ở thanh bên phải) -> Tải -> kiểm tra tải xuống

Điều này sẽ làm cho trình gỡ lỗi bị gián đoạn sự kiện dỡ tải được gửi trước khi điều hướng.


2
Một cảm ơn cho câu trả lời làm việc. Tôi muốn biết lý do tại sao rất nhiều phiếu ủng hộ cho thông báo "điều này không hoạt động"; đây có phải là vấn đề với các phiên bản Chrome cũ hơn không? Ai đó mà nó không hoạt động có thể cung cấp thêm thông tin không?
Christian Rondeau

8
Ban đầu tôi rất vui khi thấy phản hồi này nhưng tôi có thể xác nhận rằng nó không hoạt động với tôi (mặc dù tôi đã kiểm tra tải xuống như được đề xuất, chuyển hướng trang vẫn diễn ra và tôi không có cơ hội đặt các điểm ngắt trong nguồn của trang A). Có lẽ nó phải làm với cách mà trang đầu tiên "chuyển hướng"? Trong trang trường hợp A của tôi (trang mà javascript Tôi cố gắng để Debug) thực hiện một POST (thông qua javascript) để trang B.
Emil G

17
nó hoạt động ổn, vấn đề là các cuộc gọi stack rỗng, vì vậy nó không thực sự hữu ích, vì bạn sẽ không thể nhìn thấy những gì thực sự gây ra sự chuyển hướng
Eugene Kuzmenko

8
@EugeneKuzmenko nghiêm túc, tôi không biết làm thế nào điều này thực sự giúp đỡ bất cứ ai
Will P.

1
Điều này chỉ hoạt động nếu trang có một trình xử lý tải xuống hoặc tải trước khi trình gỡ lỗi có thể dừng. Nếu không có trình xử lý nào như vậy được đăng ký, trình gỡ lỗi sẽ không kích hoạt.
rumpel

42

Làm như sau

  1. Mở công cụ nhà phát triển
  2. Chuyển đến tab Nguồn
  3. Tìm kiếm các điểm ngắt của trình xử lý sự kiện
  4. Mở rộng tùy chọn Tải
  5. Tại đây kiểm tra tùy chọn dỡ tải

Điểm ngắt tải của Chrome


@TomBrito khi ở thời gian nghỉ trước khi tải xuống (mà tôi đã phải sử dụng để tránh một số bức tường phí báo ngớ ngẩn), tôi có thể kiểm tra các phần tử. Bạn có thể không kiểm tra khi dỡ hàng? Tôi đang sử dụng Chrome 71.0.3578.98.
linkD

12

Tôi có một thư viện JS của bên thứ ba, có một điều kiện sai để tải lại trang. Và trang đã được tải lại liên tục vì điều này. Tôi đã cố gắng tìm đâu là mã sai.

Tôi đã cố gắng sử dụng phương pháp "Điểm ngắt của trình xử lý sự kiện", nhưng như một nhận xét đã nói rằng bạn không có dấu vết ngăn xếp trong các sự kiện dỡ, vì vậy nó khá vô dụng.

Các giải pháp mà đã làm việc cho tôi: Tôi tạo ra một trang với một thẻ iframe với thuộc tính sandbox, ví dụ <iframe sandbox="allow-same-origin allow-scripts allow-popups allow-forms"></iframe>và đưa trang web của tôi trong đó. Bằng cách này, lỗi bảo mật sẽ xảy ra bên trong chrome và bảng điều khiển hiển thị nơi JS cố gắng truy cập đối tượng vị trí. Bạn có thể nhấp vào nó và xem mã. Tốt nhất là Chrome có trình giải nén JS (nút {} ở dưới cùng bên trái của cửa sổ nguồn), rất thông minh, có thể hiển thị dòng ngay cả sau khi in khá đẹp, vì vậy bạn có thể thấy nó ngay cả trong JS nén.

Thông tin thêm về thuộc tính hộp cát: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe#attr-sandbox


Điều này chỉ hoạt động nếu mã (trong iframe đó) sử dụng top.location = "..."khônglocation = "..."
mems
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.