How to access CSS generated content with JavaScript
Posted
by Boldewyn
on Stack Overflow
See other posts from Stack Overflow
or by Boldewyn
Published on 2010-04-16T09:01:49Z
Indexed on
2010/04/16
9:13 UTC
Read the original article
Hit count: 376
I generate the numbering of my headers and figures with CSS's counter
and content
properties:
img.figure:after {
counter-increment: figure;
content: "Fig. " counter(section) "." counter(figure);
}
This (appropriate browser assumed) gives a nice labelling "Fig. 1.1", "Fig. 1.2" and so on following any image.
Question: How can I access this from Javascript? The question is twofold in that I'd like to access either the current value of a certain counter (at a certain DOM node) or the value of the CSS generated content (at a certain DOM node) or, obviously, both information.
Background: I'd like to append to links back-referencing to figures the appropriate number, like this:
<a href="#fig1">see here</h>
------------------------^ " (Fig 1.1)" inserted via JS
As far as I can see, it boils down to this problem:
I could access content
or counter
via getComputedStyle
:
var fig_content = window.getComputedStyle(
document.getElementById('fig-a'),
':after').content;
However, this is not the live value, but the one declared in the stylesheet. I cannot find any interface to access the real live value.
© Stack Overflow or respective owner