Chrome'da bir satır içi javascript yönlendirmesinden önce javascript'i bozun


94

Satır içi javascript yönlendirmesi ( window.location = "/anotherpage") olan bir sayfayı görüntülüyorum . Sayfayı Chrome'a ​​yüklemek istiyorum, ancak yönlendirme hattını devre dışı bırakarak sayfayı yeniden yönlendirilmeden kullanabiliyorum.

İşte denediğim şey:

  • Geliştirici araçları -> Cog -> Genel -> JavaScript'i Devre Dışı Bırak. Sayfayı yükleyin. Yönlendirmiyor (yay!). Ama yine de sayfanın javascript'inin geri kalanının çalışmasını istiyorum ve olmadı.

  • URL'yi yazın, ardından Geliştirici araçları -> Kaynaklar -> Duraklat (F8) çok hızlı! Henüz yönlendirilmedi (yay!) Şimdi yeniden yönlendirme satırını duraklatmadan önce devre dışı bırakmak istiyorum, ancak bu bölüm henüz Geliştirici Araçlarına yüklenmedi. Yani ben oraya gelene kadar diğer dosyaların javascript kodunu adımlamaya başlayacağım ?? Ama diğer javascript dosyalarının dışına çıktığım anda, hemen yeniden yönlendiriyor (doh!).

Bu yapılabilir mi? Bir javascript satırını devre dışı bırakmanın kolay olacağını düşündüm, ama şaşkınım.

Yanıtlar:


144

Geliştirici Araçları -> Kaynaklar -> Olay Dinleyici Kesme Noktaları (sağ kenar çubuğunda) -> Yükle -> kaldırmayı kontrol et

Bu, navigasyondan önce gönderilen unload olayında hata ayıklayıcıyı keser.


2
Çalışan cevap için başka bir teşekkürler. "Bu işe yaramıyor" mesajına neden bu kadar çok olumlu oy verildiğini duymak isterim; bu eski Chrome sürümlerinde bir sorun muydu? İşe yaramadığı biri daha fazla bilgi sağlayabilir mi?
Christian Rondeau

8
Başlangıçta bu yanıtı gördüğüme çok sevindim, ancak benim için işe yaramadığını onaylayabilirim (önerildiği gibi kaldırmayı kontrol etsem de, sayfa yeniden yönlendirme hala devam ediyor ve sayfanın kaynaklarında kesme noktaları belirleme şansım yok A). Belki de ilk sayfanın "yeniden yönlendirme" biçimiyle bir ilgisi var? Vaka sayfamda A (javascript Hata Ayıklamaya çalıştığım sayfa) B sayfasına bir POST (javascript aracılığıyla) gerçekleştiriyor.
Emil G

17
iyi çalışıyor, sorun şu ki çağrı yığınının boş olması, bu yüzden yönlendirmeyi gerçekte neyin tetiklediğini göremeyeceğiniz için gerçekten yardımcı
olmuyor

8
@EugeneKuzmenko cidden, bunun kimseye nasıl yardım ettiğini bilmiyorum
Will P.

1
Bu, yalnızca sayfanın hata ayıklayıcının durabileceği bir boşaltma veya boşaltma öncesi işleyicisi varsa çalışır. Böyle bir işleyici kayıtlı değilse, hata ayıklayıcı tetiklenmez.
rumpel

43

Aşağıdakileri yapın

  1. Geliştirici Araçlarını
  2. Kaynaklara Git sekmesi
  3. Arayın Etkinlik İşleyici Breakpoints
  4. Yükü Genişlet seçeneğini
  5. İşte boşaltma seçeneğini kontrol edin

Chrome kesme noktası kaldırma


@TomBrito (bazı aptal gazete ödeme duvarını atlatmak için kullanmak zorunda olduğum) ön yükleme molasındayken öğeleri inceleyebilirim. Boşaltma sırasında kontrol edemez misin? Chrome 71.0.3578.98 kullanıyorum.
linkD

12

Sayfayı yeniden yüklemek için yanlış koşulu olan bir 3. taraf JS kitaplığım var. Ve bu nedenle sayfa sürekli olarak yeniden yüklendi. Yanlış kodun nerede olduğunu bulmaya çalıştım.

"Olay Dinleyici Kesme Noktaları" yöntemini kullanmayı denedim, ancak bir yorumun söylediği gibi boşaltma olaylarında yığın izine sahip değilsiniz, bu yüzden oldukça faydasız.

Solüsyon benim için çalışıyor: Ben korumalı alan özelliği ile, örneğin bir iframe etiketi içeren bir sayfa hazırladık<iframe sandbox="allow-same-origin allow-scripts allow-popups allow-forms"></iframe> ve ona sitemi koydu. Bu şekilde, Chrome'un içinde güvenlik hataları oluşur ve konsol, JS'nin konum nesnesine nerede erişmeye çalıştığını gösterir. Üzerine tıklayıp kodu görebilirsiniz. En iyisi Chrome'un bir JS açıcıya sahip olmasıdır (kaynak pencerenin sol alt tarafındaki {} düğmesi), zekice, güzel yazdırmadan sonra bile satırı gösterebilir, böylece sıkıştırılmış JS'de bile görebilirsiniz.

Korumalı alan özelliği hakkında daha fazla bilgi: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe#attr-sandbox


Bu yalnızca kod (bu iframe'de) top.location = "..."location = "..."
56'da
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.