Web ページにいくつかのスクリプトがあり、それらを反復処理して、広告呼び出し (特定の文字列を含む) を特定し、それらのスクリプト タグを解析して、それらのスクリプト タグからいくつかの URL パラメーターを取得しています。
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']);
関数の内部では、両方の実行で変数が設定され、関数の外部で解析するためにオブジェクトに割り当てられます。関数の外では、2 回目の実行時に変数が未定義として返されます。
スクリプトの実行を呼び出すページは次のとおりです: WebPage
Firebug を使用して、コンソールで出力を確認できます。なぜこれが起こっているのか誰でも説明できますか?