Общие положения
Я хотел бы добавить случайную строку к атрибуту элемента, используя jQuery или javascript.
Особенности
Мне нужно ссылаться на файл CSS, который живет на CDN. К сожалению, CDN изменяет URL этого CSS файла каждый раз, когда файл обновляется. Поэтому я не могу просто ссылаться на статический URL.
Получается, что если вы добавите строку в конец URL-адреса, который ранее не видел CDN, он вернет самую последнюю версию файла. Bogus, чтобы быть уверенным.
например.
<link href="#" onclick="location.href='http://example.com/style.css?randomString-neverSeenBefore'; return false;">
Я знаю, это уродливо, ошибочно и безумно. Но иногда это то, как печенье рушится. Альтернативой было бы попытаться сохранить в паритете растущую батарею файлов CSS и заголовков шаблонов... нежизнеспособным.;)
Что у меня до сих пор,
Мои навыки jQuery скудны. Я нашел два разных бита кода, которые делают то, что мне нужно сами по себе, но я не могу на всю жизнь выяснить, как заставить их работать вместе.
бит кода # 1:
// this guy is a random number generator that i found
jQuery.extend({
random: function(X) {
return Math.floor(X * (Math.random() % 1));
},
randomBetween: function(MinV, MaxV) {
return MinV + jQuery.random(MaxV - MinV + 1);
}
});
// using above plugin, creates 20 random numbers between 10 and 99
// and then appends that 40 digit number to a paragraph element
for (i = 0; i < 20; i++) {
$('p').text(
$('p').text() + ($.randomBetween(10, 99) )
);
}
бит кода # 2:
// this fellow creates a link to the style sheet
// after the page has loaded
var link = $("<link>");
link.attr({
type: 'text/css',
rel: 'stylesheet',
href: 'http://example.com/style.css'
});
$("head").append( link );
Я предполагаю, что требуется "бит кода №2": моя презумпция заключается в том, что я просто добавил случайное число в конец существующего атрибута "href", ничего не произойдет. т.е. файл CSS не будет перезагружен.
Спасибо миллион за вашу помощь!:)
Джон