2017-10-03 1 views
0

브라우저의 글로벌 공간에있는 일부 개체에 'JohnSmith'라는 값이 저장되어있는 경우 일부 중단 점을 맞았 으면 'JohnSmith'값을 가진 개체 나 변수를 어떻게 알 수 있습니까? 수백 개의 개체가 있고 dev 도구에서 수동으로 검색하고 싶지 않습니다. 콘솔이나 스 니펫에 일부 스크립트를 사용하여 모든 개체를 탐색했지만 모두 제대로 검색하지 못했거나 오류 메시지를 표시하지 못했습니다.브라우저 창 개체를 검색하는 방법 검색된 값을 가진 개체 또는 변수를 찾고 있습니까?

나는 유망 해 보였던 JS Runtime Inspector을 시도했지만 크롬의 제 61 버전에서는 전혀 작동하지 않습니다. 하위 탭은 동영상과 같이 표시되지 않습니다.

{ 
    const checked = new Set(); 
    const dig = (value, o=window, path='') => { 
    function check(v, name) { 
     if ((typeof v == 'string' || typeof v == 'number') 
     && String(v).toLowerCase().includes(value)) { 
     console.log('%s in %s %o', v, path + name, o); 
     } else if (v && typeof v == 'object' && v != window && !v.nodeName) { 
     dig(value, v, path + name + '.'); 
     } 
    } 
    if (o && o.forEach) { 
     for (let len = o.length, i; i < len; i++) 
     check(o[i], `[${i}]`); 
    } else if (typeof o == 'object') { 
     for (const k of Object.getOwnPropertyNames(o)) { 
     if (k.startsWith('webkit')) 
      continue; 
     try { 
      const v = o[k]; 
      if (checked.has(v)) 
      continue; 
      checked.add(v); 
      check(v, k); 
     } 
     catch(e) {} 
     } 
    } else 
     check(v); 
    }; 

    console.group(); 
    dig('JohnSmith'); 
    console.groupEnd(); 
} 

당신은 Ctrl 키를 Enter 키를 눌러 DevTools로 미리보기를 실행할 수 있습니다

+0

개체 목록이 있습니까? 또는 글로벌 공간의 모든 객체를 확인 하시겠습니까? – zhuravlyov

+0

그들 모두 또는 대상에서 시작하기. 그래서 창이나 객체의 이름은 검색을 수행하는 함수의 입력 매개 변수가 될 수 있습니다. –

+0

객체가 'let'을 사용하여 선언 된 변수에있을 수 있습니까? 이것들은 윈도우 속성으로 존재하지 않으며 당신이 자신의 이름 공간을 검색 할 수 있다는 것을 알지 못합니다. – traktor53

답변

1

는 여기에 내가 DevTools로 미리보기 패널에서 계속 코드 조각입니다.

+0

니스! 그것은 작동합니다. 감사. –

관련 문제