2 개의 JSON 피드를 사용하여 날짜를 확인하고 현재 날짜와 날짜 중 하나의 개체에 따라 데이터를 표시하지만 어떤 이유로 인해 개체 인 c 변수 정의되지 않았습니다. 나는 하드 URL을 '요소'기능으로 데이터를 교체 할 때, 모든 것이 잘 작동하지만 데이터가 C 개체 내부에 저장되어 있지 않은 이유는 확실하지 않다 :JSON 피드 개체의 Javascript 변수가 인식되지 않습니다.
jQuery(function ($) {
var url1 = 'feed1.json';
var url2 = 'feed2.json';
var id = shop_id.replace(/\[|\]|\"/g, '');
var c = {};
var logo;
$.when(request1(), request2()).done(function (r1, r2) {
var results1 = $.grep(r1[0], function (e) {return e.id == id});
var results2 = $.grep(r2[0], function (e) {return e.shop_id == id});
var fallback = $.grep(r2[0], function (e) {return e.PSN == 'fallback160'});
if (!$.isEmptyObject(results2)) {
if (!$.isEmptyObject(results1)) {
var today = new Date();
var endDate = formatDate(results1[0].Ende);
var startDate = formatDate(results1[0].Start);
console.log(endDate);
console.log(startDate);
if (today <= endDate && today >= startDate) {
c = {'one': results1[0].INC_Suffix, 'separator': ' bis ', 'two': results1[0].Ende, 'link': results1[0].Deeplink, 'logo': results2[0].logo_url};
elements();
}
}
else {
c = {'one': results2[0].STD_INC_Factor, 'separator': ' ', 'two': results2[0].STD_INC_Suffix, 'link': results2[0].deeplink, 'logo': results2[0].logo_url};
elements();
}
}
else {
$('#clicktag').html('<img src="' + fallback[0].logo_url + '">').attr('href', clicktag + encodeURIComponent(fallback[0].deeplink));
}
//resize fonts based on height of the container
var intBoxHeight = $('#interupter').height();
var intInnerHeight = $('#interupterInner').height();
var intFontSize = parseInt($('#interupterInner').css('font-size'));
while (intInnerHeight > intBoxHeight) {
--intFontSize;
$('#interupterInner').css('font-size', intFontSize + 'px');
intBoxHeight = $('#interupter').height();
intInnerHeight = $('#interupterInner').height();
}
}).fail(function() {
c = {'one': 'DIE BESTEN', 'separator': ' ', 'two': 'ANGEBOTE', 'link': '#', 'logo': 'img/fallback.png'};
elements();
})
function elements() {
$('#storeLogo span').html('<img src=\'' + c.logo + '\'>');
$('#interupterInner').html(c.one + c.separator + c.two);
$('#clicktag').attr('href', clicktag + encodeURIComponent(c.link));
tl.play();
}
function formatDate (d) {
var part = d.split('.');
return new Date(part[1] + '.' + part[0] + '.' + part[2]);
}
console.log(elements());
function request1() {return $.getJSON(url1)};
function request2() {return $.getJSON(url2)};
})
요청에 대한 결과는 결코 'c'값을 할당하는 조건을 충족시키지 못합니다. 내 조언은 귀하의 브라우저의 JavaScript 디버거를 통해 단계별로 수행 할 것입니다. – Phil
죄송합니다, 문제는 nly Firefox에서 발생하는 것을 잊어 버렸습니다. 크롬에서는 정상적으로 작동합니다. – wintermute
또한 콘솔에 아무것도 기록하지 못하는 것 같습니다. – wintermute