@@ -14,14 +14,15 @@ var plotcss = require('../../build/plotcss');
14
14
15
15
// Inject styling information into the document containing the graph div
16
16
exports . injectStyles = function injectStyles ( gd ) {
17
+
17
18
// If the graph div has already been styled, bail
18
19
if ( gd . _plotCSSLoaded ) return ;
19
20
20
- var targetSelectors = exports . getAllRuleSelectors ( gd . _document ) ;
21
21
var targetStyleSheet = null ;
22
22
23
23
if ( gd . _document . getElementsByTagName ( 'style' ) . length === 0 ) {
24
24
var style = gd . _document . createElement ( 'style' ) ;
25
+
25
26
// WebKit hack :(
26
27
style . appendChild ( gd . _document . createTextNode ( '' ) ) ;
27
28
gd . _document . head . appendChild ( style ) ;
@@ -35,14 +36,11 @@ exports.injectStyles = function injectStyles(gd) {
35
36
for ( var selector in plotcss ) {
36
37
var fullSelector = exports . buildFullSelector ( selector ) ;
37
38
38
- // Don't duplicate selectors
39
- if ( targetSelectors . indexOf ( fullSelector ) === - 1 ) {
40
- if ( targetStyleSheet . insertRule ) {
41
- targetStyleSheet . insertRule ( fullSelector + '{' + plotcss [ selector ] + '}' , 0 ) ;
42
- }
43
- else if ( targetStyleSheet . addRule ) {
44
- targetStyleSheet . addRule ( fullSelector , plotcss [ selector ] , 0 ) ;
45
- }
39
+ if ( targetStyleSheet . insertRule ) {
40
+ targetStyleSheet . insertRule ( fullSelector + '{' + plotcss [ selector ] + '}' , 0 ) ;
41
+ }
42
+ else if ( targetStyleSheet . addRule ) {
43
+ targetStyleSheet . addRule ( fullSelector , plotcss [ selector ] , 0 ) ;
46
44
}
47
45
else loggers . warn ( 'injectStyles failed' ) ;
48
46
}
@@ -60,22 +58,3 @@ exports.buildFullSelector = function buildFullSelector(selector) {
60
58
61
59
return fullSelector ;
62
60
} ;
63
-
64
- // Gets all the rules currently attached to the document
65
- exports . getAllRuleSelectors = function getAllRuleSelectors ( sourceDocument ) {
66
- var allSelectors = [ ] ;
67
-
68
- for ( var i = 0 ; i < sourceDocument . styleSheets . length ; i ++ ) {
69
- var styleSheet = sourceDocument . styleSheets [ i ] ;
70
-
71
- if ( ! styleSheet . cssRules ) continue ; // It's possible for rules to be undefined
72
-
73
- for ( var j = 0 ; j < styleSheet . cssRules . length ; j ++ ) {
74
- var cssRule = styleSheet . cssRules [ j ] ;
75
-
76
- allSelectors . push ( cssRule . selectorText ) ;
77
- }
78
- }
79
-
80
- return allSelectors ;
81
- } ;
0 commit comments