2012-06-25 15 views
50

मेरे पास एक ऐसा पृष्ठ है जो रीडायरेक्ट कर रहा है जब यह नहीं होना चाहिए, और मैं यह पता लगाने की कोशिश कर रहा हूं कि यह कौन कर रहा है। सबसे पहले मैंने खिड़की को अपहरण करने की कोशिश की। स्थान:खिड़की के दौरान तोड़ें। स्थान परिवर्तन?

window.location = (function (location) { 
    // location is now hidden inside a closure. We can override it 
    var Location = Object.create(location); 
    // Location is now our proxy. We can use it to catch changes 
    window.__defineGetter__('location', function() { return Location }); 
    window.__defineSetter__('location', function (x) { debugger; location = x; return x; }); 
    // etc etc, considered assignments to location.href, location.search, location.host etc., as well as calls to location.replace and location.assign 
}(window.location)); 

यह क्रोम में बिल्कुल भी काम नहीं करता था। आप सुरक्षा कारणों से window.location पर सेटर्स और गेटर्स नहीं कर सकते हैं। ठीक। अगली बात मैंने कोशिश की ऑनअनलोड और onbeforeunload अवलोकन किया गया था:

['unload', 'beforeunload'].forEach(function (evName) { 
    window.addEventListener(evName, function() { 
     debugger; // Chance to check everything right before the redirect occurs 
    }); 
}); 

मैं जानता था कि विंडो स्थान का मान एक समान ऑनअनलोड घटना के बाद जब तक, फिर से सुरक्षा कारणों के लिए रहना होगा, लेकिन मैं कुछ अन्य सुराग के लिए उम्मीद की गई थी ; ऐसा भाग्य नहीं। मैंने आगे अपनी खुद की लिपियों में हर बिंदु पर ब्रेकपॉइंट डालने का प्रयास किया जहां खिड़की। स्थान संभवतः असाइन किया जा सकता था। उनमें से कोई भी क्रोम डीबगर के हिसाब से हिट नहीं है। अरे। यह रीडायरेक्ट एफएफ में नहीं हो रहा है, वैसे, और मैंने क्रोम को पुनरारंभ करने का प्रयास किया है। मुझे लगता है कि मैंने वास्तव में सब कुछ करने की कोशिश की है और कहीं भी नहीं मिला है, जो उम्मीद है कि मैं डेवलपर के रूप में स्तर बनने वाला हूं? कृप्या?

क्या पृष्ठ के स्थान को पुनर्निर्देशित करने वाली रेखा को तोड़ने के लिए, मेरे लिए किसी भी ब्राउज़र में कोई भी तरीका है, मानव डीबगर ऑपरेटिंग है? मैं समझता हूं कि उस जानकारी तक स्वचालित पहुंच की इजाजत देने के लिए सुरक्षा प्रभाव हैं, लेकिन क्या ऐसा कुछ भी नहीं है जो डेवलपर को विशेषाधिकार देता है और इसे करने का तरीका देता है? यदि नहीं, तो इस तरह की स्थिति से निपटने का सामान्य तरीका क्या है? यह काफी आम लगता है और मुझे नहीं लगता कि किसी को अवधारणात्मक सरल समस्या पर घंटों या दिनों तक अवरुद्ध होना पसंद है। टीआईए

+2

सबसे खराब स्थिति तुम सिर्फ एक ब्रेकप्वाइंट कहीं डाल सकता है और उसके बाद मैन्युअल रूप से कोड के माध्यम से कदम जब तक आप अपराधी –

+1

यह सच है, और है कि अब मैं क्या कर रहा है, लेकिन एक व्यायाम के रूप मामले में जहां रीडायरेक्ट एक गतिशील रूप से आता है पर विचार स्क्रिप्ट टैग शामिल: // google.com document.body.appendChild (document.createElement ('script')) पर रीडायरेक्ट। appendChild (document.createTextNode (decodeURIComponent ( '% 77% 69% 6e% 64% 6f% 77% 2e% 6c% 6f% 63% 61% 74% 69% 6f% 6e% 2e% 61% 73% 73% 69% 67% 6e% 28% 27% 68 \ % 74% 74% 70% 3 ए% 2 एफ% 2 एफ% 77% 77% 77% 2e% 67% 6 एफ% 6 एफ% 67% 6 सी% 65% 2e% 63% 6 एफ% 6 डी% 27% 2 9 ')) यही कारण है कि मैं सोच रहा हूं कि गॉर्डियन गांठ काटने के लिए कोई चाल है या नहीं, तो पेशेवर इस तरह के मुद्दों पर खर्च किए गए समय को कम करने के लिए क्या करते हैं। –

+1

इस पर कोई अद्यतन? मैं वही बात कर रहा हूँ। –

उत्तर

15

नेटवर्क टैब आपको मदद करता है, लॉग चेकबॉक्स को सुरक्षित रखने पर स्विच करें, आरंभकर्ता कॉलम में जावास्क्रिप्ट स्थान होगा जिसमें रीडायरेक्ट होता है।

+16

यह उपयोगी होगा, मेरे मामले में यह सिर्फ "अन्य" कहता है। बहुत उपयोगी नहीं, क्रोम। ': /' – qJake

संबंधित मुद्दे