Display CSS. This doesn't work in Chrome, locally (http://code.google.com/p/chromium...
authorRobert Konigsberg <konigsberg@google.com>
Sat, 25 Feb 2012 21:45:10 +0000 (16:45 -0500)
committerRobert Konigsberg <konigsberg@google.com>
Sat, 25 Feb 2012 21:45:10 +0000 (16:45 -0500)
gallery/gallery.css
gallery/gallery.js
gallery/index.html

index e7a343e..7bd3510 100644 (file)
@@ -1,5 +1,3 @@
-@import url("../common/textarea.css");
-
 body {
   font-family: Helvetica Neue, Arial, Helvetica, sans-serif;
   font-size: 90%;
index 8e0aa71..b735693 100644 (file)
@@ -65,9 +65,12 @@ Gallery.start = function() {
 
       Gallery.subtitle.appendChild(document.createTextNode(" "));
 
-      var cssLink = Gallery.create("a", Gallery.subtitle);
-      cssLink.textContent = "CSS";
-      cssLink.href = "#";
+      var css = getCss(id);
+      if (css) {
+        var cssLink = Gallery.create("a", Gallery.subtitle);
+        cssLink.textContent = "CSS";
+        cssLink.href = "#";
+      }
 
       Gallery.workareaChild.id = id;
       location.hash = "g/" + id;
@@ -88,7 +91,6 @@ Gallery.start = function() {
       };
 
       cssLink.onclick = function() {
-        var css = getCss(demo.title);
         Gallery.textarea.show("CSS", css);
       };
 
@@ -102,11 +104,30 @@ Gallery.start = function() {
   window.onhashchange = Gallery.setHash;("hashchange", Gallery.hashChange, false);
 };
 
-var getCss = function(section) {
-  // Pretty presumptive of me to assume the first style sheet is the correct one.
-  // TODO(konigsberg): find the right style sheet by searching.
-  var ss = document.styleSheets[0];
-  return ss.toString();
+var getCss = function(id) {
+  for (var i = 0; i < document.styleSheets.length; i++) {
+    var ss = document.styleSheets[i];
+    if (ss.title == "gallery") {
+      try {
+        var rules = ss.rules || ss.cssRules;
+        if (rules) {
+          var arry = [];
+          for (var j = 0; j < rules.length; j++) {
+            var rule = rules[j];
+            var cssText = rule.cssText;
+            var key = "#workarea #" + id + " ";
+            if (cssText.indexOf(key) == 0) {
+              arry.push(cssText.substr(key.length));
+            }
+          }
+          return arry.join("\n\n");
+        }
+      } catch(e) { // security error
+        console.log(e);
+      }
+    }
+  }
+  return "not found";
 }
 
 Gallery.register = function(id, demo) {
index 0f573e8..311427e 100644 (file)
@@ -47,7 +47,8 @@
     <script src="annotation-gviz.js"></script>
     <script src="annotation-native.js"></script>
     -->
-    <link rel="stylesheet" type="text/css" href="gallery.css" />
+    <link rel="stylesheet" type="text/css" href="../common/textarea.css"></link>
+    <link title="gallery" rel="stylesheet" type="text/css" href="gallery.css"></link>
   </head>
   <body>
     <table>