you could use this function to get the elements background:
code:
function getBgColor(){
var node = document.getElementById("spanOne");
var style = document.defaultView.getComputedStyle(node, '').getPropertyValue("background-color");
while(style == "transparent"){
if(node.parentNode != document){
node = node.parentNode;
style = document.defaultView.getComputedStyle(node, '').getPropertyValue("background-color");
}
else{
style = "rgb(255, 255, 255)";
}
}
return style;
}
Its basically loops through the elements parents nodes, until it finds one that isn't transparent and returns the background color.
so for example you could use:
code:
var nodes, defaultColor;
function spoiler(){
if(!nodes){//If nodes is undefined then this is the first time so set up the defaults and nodes
nodes = document.evaluate("//*[@class='spoiler']", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);//Use XPath to get all the nodes with the class 'spoiler'
defaultColor = document.defaultView.getComputedStyle(nodes.snapshotItem(0), '').getPropertyValue("color");//Use the color of the first one as the default value
}
for(var i=0;i<nodes.snapshotLength;i++){//Loop through the nodes
var node = nodes.snapshotItem(i);//Make life easy
var color = document.defaultView.getComputedStyle(node, '').getPropertyValue("color");//Get the nodes color
if(color == defaultColor){//If its the default color, hide it
node.style.color = getBgColor(node);//With our cool func
}
else{
node.style.color = defaultColor;//Otherwise set it back to the default color
}
}
}
and
code:
<a href="#" onClick="spoiler()">Spoilers (on/off)</a>
and that should work, the only limitation is it doesn't support different colors (but if they are all one class why should they be a different color )
Oh and you have to call the spoiler function to hide the text at the start
Just say if you need help and don't forget to include the getBgColor func in your script
Ignore all of that, as it won't work in IE
* Plik has been coding to many userscripts