См. Пример следующего & # x2192;
Несмотря на то, что я считаю эту технику необоснованной, я разработал кое-что, что я протестировал для работы в Chrome, FF, Safari и IE8.
Во-первых, я выбрал свойство list-style-image
, которое будет использоваться для хранения метаданных, поскольку оно может содержать любую строку в параметре url()
и, тем не менее, не будет использоваться ни при каких обычных условиях в CSS тела.
Затем я реализовал общую кросс-браузерную функцию для getComputedStyle
, поскольку она доступна не во всех браузерах.
Затем я проанализировал возвращаемое свойство, чтобы получить только данные внутри url('')
, в результате чего были получены следующие функции:
var getStyle = function(el, cssprop) {
if (el.currentStyle) {
return el.currentStyle[cssprop];
} else if (document.defaultView && document.defaultView.getComputedStyle) {
return document.defaultView.getComputedStyle(el, "")[cssprop];
} else {
return (el.style) ? el.style[cssprop] : 0;
}
};
var pullCSSMeta = function() {
var aMeta = getStyle(document.body, 'listStyleImage').split('/'),
meta = aMeta[aMeta.length - 1];
return decodeURIComponent(meta.substr(0, meta.length - 1).replace(/"$/,''));
};
Если вам нужно хранить более одной части информации, вы можете разделить запятую данные или потенциально даже сохранить строку JSON. Я надеюсь, что у вас есть веская причина для этого, поскольку я думаю, что есть лучшие способы хранения метаданных ... но все готово!
См. Пример & # x2192;