웹 페이지에 몇 개의 스크립트가 있고 그 중 어떤 것이 광고 호출인지 파악한 다음 (특정 문자열 포함) 해당 스크립트 태그를 파싱하여 일부를 가져옵니다. 해당 스크립트 태그의 url 매개 변수객체를 반환하면 두 번째 반복에서 undefined가 반환됩니다.
var cmunt_uniqueId, cmnunt_kw;
var scripts = jQuery('script');
var adObject = {};
jQuery(scripts).each(function(v,u) {
if ((jQuery(u).attr('src') !== undefined) && (jQuery(u).attr('src').indexOf('cmnUNTmob-20121130.js') > -1)) {
console.log('script.src[' + v + ']="' + jQuery(u).attr('src') + '"');
var adCall = jQuery(u).attr('src');
// console.log(adCall);
var pubtag = adCall;
var newtag = pubtag.replace(/^[^\?]+\??/, '');
var parts = newtag.split('&');
var part1 = parts[0].split('=');
var part2 = parts[1].split('=');
var cmn_site_unit = part1[1].split('/');
var cmn_site = cmn_site_unit[0];
var cmn_unit = cmn_site_unit[1];
cmnunt_kw = part2[1];
var cmunt_uniqueId = getCookie('__utma');
adObject['cmn_unit'] = cmn_unit;
adObject['cmn_site'] = cmn_site;
console.log('inside function');
console.log(adObject['cmn_site']);
console.log(adObject['cmn_unit']);
return adObject;
}
});
console.log('outside function');
console.log(adObject['cmn_site']);
console.log(adObject['cmn_unit']);
두 내부 실행 모두에서 함수 외부에서 구문 분석 할 변수가 설정되고 할당됩니다. 함수 외부에서 두 번째 실행시 변수가 정의되지 않은 상태로 반환됩니다. WebPage
당신은 방화범을 사용하여 콘솔에 출력을 볼 수 있습니다 여기에
스크립트를 실행하는 페이지의 호출이다. 왜 이런 일이 일어 났는지 설명 할 수 있습니까? 이 하나jQuery(scripts).each(function(v,u) {
:
각 반복마다 개체 키를 새 값으로 덮어 쓰고 있습니다. 더 많은 값을 저장하려면 다른 키/속성이 필요합니다. – adeneo