브라우저의 글로벌 공간에있는 일부 개체에 '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로 미리보기를 실행할 수 있습니다
개체 목록이 있습니까? 또는 글로벌 공간의 모든 객체를 확인 하시겠습니까? – zhuravlyov
그들 모두 또는 대상에서 시작하기. 그래서 창이나 객체의 이름은 검색을 수행하는 함수의 입력 매개 변수가 될 수 있습니다. –
객체가 'let'을 사용하여 선언 된 변수에있을 수 있습니까? 이것들은 윈도우 속성으로 존재하지 않으며 당신이 자신의 이름 공간을 검색 할 수 있다는 것을 알지 못합니다. – traktor53