By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
435,247 Members | 1,273 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 435,247 IT Pros & Developers. It's quick & easy.

Can Javascript add a new style class ?

P: n/a

Hi guys,

Is it possible to add "onload" (via Javascript) a new class to the
<styleheader section?
If yes, how would that be done ?

<style type="text/css" media="screen">
.NewStyleClass{ whatever }
</style>
-P

Sep 28 '06 #1
Share this Question
Share on Google+
8 Replies


P: n/a
wrote on 28 Sep 2006 in comp.lang.javascript:
>
Hi guys,

Is it possible to add "onload" (via Javascript) a new class to the
<styleheader section?
If yes, how would that be done ?

<style type="text/css" media="screen">
.NewStyleClass{ whatever }
</style>
<http://www.thescripts.com/forum/post343885-2.html>
--
Evertjan.
The Netherlands.
(Please change the x'es to dots in my emailaddress)
Sep 28 '06 #2

P: n/a
You need to state the purpose and end result of what you are doing.
Perhaps there's a right way to do it that's not a complete hack.

pa***********@libero.it wrote:
Hi guys,

Is it possible to add "onload" (via Javascript) a new class to the
<styleheader section?
If yes, how would that be done ?

<style type="text/css" media="screen">
.NewStyleClass{ whatever }
</style>
-P
Sep 29 '06 #3

P: n/a

pa***********@libero.it написав:
Hi guys,

Is it possible to add "onload" (via Javascript) a new class to the
<styleheader section?
If yes, how would that be done ?

<style type="text/css" media="screen">
.NewStyleClass{ whatever }
</style>
-P
what about document.write()? (But not with onload)
or document.createElement("STYLE") (with onload)?

Sep 29 '06 #4

P: n/a
Thanks guys, I going to check those suggestions.

Is it going to work with both MSIE and FF (that's the minimum
compatibility I need) ?

The purpose is simply that I want to add some css/html
dinamically from javascript. It's kind of optional code that
I need to add "onload" only under some circumstances.
-P

Sep 29 '06 #5

P: n/a
ASM
pa***********@libero.it a crit :
>
The purpose is simply that I want to add some css/html
dinamically from javascript. It's kind of optional code that
I need to add "onload" only under some circumstances.
<html>
<script type="text/javascript">

function newClass(class, attributes) {
var S = document.createElement('style');
S.type = 'text/css';
var T = '.'+class+' { '+attributes+' }';
T = document.createTextNode(T)
S.appendChild(T);
document.body.appendChild(S);
}

</script>

<style type="text/css">
p { color: blue; cursor: pointer; font-size: 2em }
</style>

<p
onclick="newClass('pizza','color:lime;background:# F33;text-align:center');
this.className=this.className==''?'pizza':'';">
voici un petit essai de pizza<br>
little test : pizza ?<br>
poi ? pizza ?
</p>
</html>

Don't know if that works with IE

--
ASM
Oct 24 '06 #6

P: n/a
ASM wrote:
pa***********@libero.it a crit :
>>
The purpose is simply that I want to add some css/html
dinamically from javascript. It's kind of optional code that
I need to add "onload" only under some circumstances.
Have a go with this class. Tested on IE, Moz and Opera. YMMV.

/**
An object which encapsulates a dynamically created, modifiable stylesheet.
*/
function CSSStyleSheet()
{
/**
* The array of rules for this stylesheet.
* @private
*/
this.rules = [];

/**
* An associative array, keyed by the selector text containing the rule index number for
* the rule for that selector text.
* @private
*/
this.ruleIndex = [];

if (document.createStyleSheet)
{
this.sheet = document.createStyleSheet();
}
else
{
this.styleElement = document.createElement("style");
document.getElementsByTagName("head")[0].appendChild(this.styleElement);
this.sheet = this.styleElement.styleSheet ? this.styleElement.styleSheet : this.styleElement.sheet;
}
}

/**
Create a style rule in the stylesheet.
@param selectorText The CSS selector text.
@param ruleText The style specification with or without braces.
*/
CSSStyleSheet.prototype.addRule = function(selectorText, ruleText)
{
var result;

// Opera, and other browsers with no DOM stylesheet support
if (!this.sheet)
{
// Remove braces.
ruleText = ruleText.replace(/^\{?([^\}])/, "$1");

// If it exists, modify it.
if (!this.ruleIndex[selectorText])
this.ruleIndex[selectorText] = this.rules.length;
this.rules[this.ruleIndex[selectorText]] = ruleText;

// Build the innerHTML of the <styleelement from our rules.
var cssText = "";
for (var sel in this.ruleIndex)
cssText = sel + " {" + this.rules[this.ruleIndex[sel]] + "}";
this.styleElement.innerHTML = cssText;
}

// IE.
// Each rule object has a style property which contains the style attributes.
else if (this.sheet.addRule)
{
// addRule() requires no braces
ruleText = ruleText.replace(/^\{?([^\}])/, "$1");
var r = this.sheet.rules.length;
this.sheet.addRule(selectorText, ruleText);
result = this.sheet.rules[r];
this.ruleIndex[selectorText] = r;

if (this.rules.length == 0)
this.rules = this.sheet.rules;
}

// DOM standard. Result object contains looks like {cssText:selectorText + " " + ruleText}
// cssText property is readonly. deleteRule(ruleIndex} must be used to remove.
else if (this.sheet.insertRule)
{
// insertRule() requires braces
if (!/^\{[^\}]*\}$/.test(ruleText))
ruleText = "{" + ruleText + "}";

var r = this.sheet.cssRules.length;
this.sheet.insertRule(selectorText + " " + ruleText, r);
result = this.sheet.cssRules[r];
this.ruleIndex[selectorText] = r;

if (this.rules.length == 0)
this.rules = this.sheet.cssRules;
}
else
{
alert("Cannot create rule");
}
return result;
}

/**
* Change a style property in a rule.
* @param selectorText The identifier of the rule to change
* @param property The name of the style property to change
* @param value The new value of the style property.
*/
CSSStyleSheet.prototype.changeRule = function(selectorText, property, value)
{
var index = this.ruleIndex[selectorText];

// If the rule is not present, create it.
if (typeof index == "undefined")
{
this.addRule(selectorText, property + ":" + value);
}

// Opera, and other browsers with no DOM stylesheet support
if (!this.sheet)
{
var cssText = this.rules[index];
if (cssText)
{
var propSearch = new RegExp("^(.*" + property + "\\s*\:\\s*)([^;]*)(.*)$");
var ruleText = propSearch.exec(cssText);
// If the value was in the old rule...
if (ruleText)
{
// And it was different...
if (ruleText[4] != value)
{
this.rules[index] = ruleText[1] + value + ruleText[3];
}
}
else
{
this.rules[index] = cssText + "; " + property + ": " + value + ";";
}

// Rebuild the innerHTML of the <styleelement from our rules.
cssText = "";
for (var sel in this.ruleIndex)
cssText = sel + " {" + this.rules[this.ruleIndex[sel]] + "}";
this.styleElement.innerHTML = cssText;
}

var cssText = "";
var cssText = "";
for (var sel in this.ruleIndex)
cssText = sel + " {" + this.rules[this.ruleIndex[sel]] + "}";
}

// rules contain a style object - easy
else if (this.rules[index].style)
{
// Make the property camelCase
var m = /^([^-]*)-([a-z])(.*)$/.exec(property);
while (m)
{
property = m[1] + m[2].toUpperCase() + m[3];
m = /^([^-]*)-([a-z])(.*)$/.exec(property);
}

// Use the style property of the rule.
this.rules[index].style[property] = value;
}

// DOM standard. We must parse the rule, delete, and create a new one.
else if (this.sheet.insertRule)
{
var oldRule = this.rules[index];
if (oldRule)
{
var cssText = oldRule.cssText;
var propSearch = new RegExp("^[^\\{]*(\\{.*" + property + "\\s*\\:\\s*)([^};]*)([^}]*})");
var ruleText = propSearch.exec(cssText);

// If the value was in the old rule...
if (ruleText)
{
// And it was different...
if (ruleText[4] != value)
{
cssText = ruleText[1] + value + ruleText[3];
this.sheet.deleteRule(index);
this.sheet.insertRule(selectorText + " " + cssText, index);
}
}
else
{
var propSearch = new RegExp("\\{([^}]*)}");
ruleText = propSearch.exec(cssText);
cssText = "{ " + ruleText[1] + "; " + property + ": " + value + " }";
this.sheet.deleteRule(index);
this.sheet.insertRule(selectorText + " " + cssText, index);
}
}
}
}

CSSStyleSheet.prototype.getRuleProperty = function(selectorText, property)
{
var index = this.ruleIndex[selectorText];

// If the rule is not present, create it.
if (typeof index == "undefined")
{
return;
}

// Opera, and other browsers with no DOM stylesheet support
if (!this.sheet)
{
var cssText = this.rules[index];
if (cssText)
{
var propSearch = new RegExp("^.*" + property + "\s*\:\s*([^;]*)");
var ruleText = propSearch.exec(cssText);

// If the value was in the old rule...
if (ruleText)
{
return ruleText[1];
}
}
}

// rules contain a style object - easy...
else if (this.rules[index].style)
{
// Make the property camelCase
var m = /^([^-]*)-([a-z])(.*)$/.exec(property);
while (m)
{
property = m[1] + m[2].toUpperCase() + m[3];
m = /^([^-]*)-([a-z])(.*)$/.exec(property);
}
var style = this.rules[index].style;
return style[property];
}

// DOM: We must parse the rule cssText.
else if (this.sheet.insertRule)
{
var oldRule = this.rules[index];
if (oldRule)
{
cssText = oldRule.cssText;
var propSearch = new RegExp("^.*" + property + "\\s*\\:\\s*([^};]*)");
var ruleText = propSearch.exec(cssText);

// If the value was in the old rule...
if (ruleText)
{
return ruleText[1];
}
}
}
}
Oct 28 '06 #7

P: n/a

pa***********@libero.it wrote:
Thanks guys, I going to check those suggestions.

Is it going to work with both MSIE and FF (that's the minimum
compatibility I need) ?

The purpose is simply that I want to add some css/html
dinamically from javascript. It's kind of optional code that
I need to add "onload" only under some circumstances.
Why not have the various possible CSS options already statically
waiting the stylesheet and then add the correct class to the body
element to activate whatever you want? Using decendent selectors this
is very flexible.

Here is an example

http://evil.che.lu/

Peter

Oct 28 '06 #8

P: n/a
sex arab videos 2007 سكس عربي جديد فيديو sex كس
سكس خليجي سكس بلوتوث سكس عرب سكس العربي

قصص سكس افلام سكس صور سكس لبنان سكس
خليجي سكس بلوتوث سكس عرب سكس العربي
السكس قصص سكس افلام سكس صور سكس لبنان
سكس خليجي سكس بلوتوث سكس عرب سكس العربي

السكس قصص سكس افلام سكس صور سكس لبنان
سكس خليجي سكس بلوتوث سكس عرب سكس العربي

السكس قصص سكس افلام سكس صور سكس لبنان
سكس خليجي سكس بلوتوث سكس عرب سكس العربي

السكس قصص سكس افلام سكس صور سكس لبنان
سكس خليجي سكس بلوتوث سكس عرب سكس العربي

السكس sex arab videos 2007 سكس عربي جديد فيديو sex
كس
arab videos كس المغرب مثلي
سكس عربي جديد صورة وصوت sex arab videos
نيك ق*بات دعارة فضي*ة عربيات *ب
تعارف زواج عرفي ارقام بنات ورعان سكس
نيك ق*بات دعارة فضي*ة عربيات *ب
تعارف زواج عرفي ارقام بنات ورعان
مخانيث خنيث
السعودية سكس
الكوتية سكس
العمانية سكس
المصرية سكس
السكس النياكة الجماع الجنس ال*ب الزواج

مخانيث خنيث

http://www.websofiane.net
http://www.sofiane.c.la/
http://sofiane.c.la/
http://www.sofiane2007.com
http://sofiane2007.oldiblog.com
http://sofiane2006.webobo.com
http://www.websofiane.net
http://www.sofiane2007.com/categorie-970159.html
http://sofiane.c.la/ http://sofiane.c.la/
http://pubmoteur.canalblog.com/
http://www.websofiane.net
http://www.sofiane-online.org
http://hgdfdfqgsdfgqsdv.canalblog.co...4/3165606.html
http://www.sofiane2007.com/categorie-970159.html
http://pubmoteur.canalblog.com/
http://www.websofiane.net
http://www.sofiane-online.org
http://www.sofiane2007.com
http://sofiane2007.oldiblog.com
http://sofiane2006.webobo.com
http://www.websofiane.net
http://www.sofiane2007.com
http://sofiane2007.oldiblog.com
http://sofiane2006.webobo.com
http://www.websofiane.net http://www.websofiane.net
http://www.sofiane.c.la/
http://sofiane.c.la/
http://www.sofiane2007.com
http://sofiane2007.oldiblog.com
http://sofiane2006.webobo.com
http://www.websofiane.net
http://www.sofiane2007.com/categorie-970159.html
http://sofiane.c.la/ http://sofiane.c.la/
http://pubmoteur.canalblog.com/
http://www.websofiane.net
http://www.sofiane-online.org
http://hgdfdfqgsdfgqsdv.canalblog.co...4/3165606.html
http://www.sofiane2007.com/categorie-970159.html
http://pubmoteur.canalblog.com/
http://www.websofiane.net
http://www.sofiane-online.org
http://www.sofiane2007.com
http://sofiane2007.oldiblog.com
http://sofiane2006.webobo.com
http://www.websofiane.net
http://www.sofiane2007.com
http://sofiane2007.oldiblog.com
http://sofiane2006.webobo.com
http://www.websofiane.net
http://www.websofiane.net
http://www.sofiane.c.la/
http://sofiane.c.la/
http://www.sofiane2007.com
http://sofiane2007.oldiblog.com
http://sofiane2006.webobo.com
http://www.websofiane.net
http://www.sofiane2007.com/categorie-970159.html
http://sofiane.c.la/ http://sofiane.c.la/
http://pubmoteur.canalblog.com/
http://www.websofiane.net
http://www.sofiane-online.org
http://hgdfdfqgsdfgqsdv.canalblog.co...4/3165606.html
http://www.sofiane2007.com/categorie-970159.html
http://pubmoteur.canalblog.com/
http://www.websofiane.net
http://www.sofiane-online.org
http://www.sofiane2007.com
http://sofiane2007.oldiblog.com
http://sofiane2006.webobo.com
http://www.websofiane.net
http://www.sofiane2007.com
http://sofiane2007.oldiblog.com
http://sofiane2006.webobo.com
http://www.websofiane.net http://www.websofiane.net
http://www.sofiane.c.la/
http://sofiane.c.la/
http://www.sofiane2007.com
http://sofiane2007.oldiblog.com
http://sofiane2006.webobo.com
http://www.websofiane.net
http://www.sofiane2007.com/categorie-970159.html
http://sofiane.c.la/ http://sofiane.c.la/
http://pubmoteur.canalblog.com/
http://www.websofiane.net
http://www.sofiane-online.org
http://hgdfdfqgsdfgqsdv.canalblog.co...4/3165606.html
http://www.sofiane2007.com/categorie-970159.html
http://www.websofiane.net
http://www.sofiane.c.la/
http://sofiane.c.la/
http://www.sofiane2007.com
http://sofiane2007.oldiblog.com
http://sofiane2006.webobo.com
http://www.websofiane.net
http://www.sofiane2007.com/categorie-970159.html
http://sofiane.c.la/ http://sofiane.c.la/
http://pubmoteur.canalblog.com/
http://www.websofiane.net
http://www.sofiane-online.org
http://hgdfdfqgsdfgqsdv.canalblog.co...4/3165606.html
http://www.sofiane2007.com/categorie-970159.html
http://pubmoteur.canalblog.com/
http://www.websofiane.net
http://www.sofiane-online.org
http://www.sofiane2007.com
http://sofiane2007.oldiblog.com
http://sofiane2006.webobo.com
http://www.websofiane.net
http://www.sofiane2007.com
http://sofiane2007.oldiblog.com
http://sofiane2006.webobo.com
http://www.websofiane.net http://www.websofiane.net
http://www.sofiane.c.la/
http://sofiane.c.la/
http://www.sofiane2007.com
http://sofiane2007.oldiblog.com
http://sofiane2006.webobo.com
http://www.websofiane.net
http://www.sofiane2007.com/categorie-970159.html
http://sofiane.c.la/ http://sofiane.c.la/
http://pubmoteur.canalblog.com/
http://www.websofiane.net
http://www.sofiane-online.org
http://hgdfdfqgsdfgqsdv.canalblog.co...4/3165606.html
http://www.sofiane2007.com/categorie-970159.html
http://pubmoteur.canalblog.com/
http://www.websofiane.net
http://www.sofiane-online.org
http://www.sofiane2007.com
http://sofiane2007.oldiblog.com
http://sofiane2006.webobo.com
http://www.websofiane.net
http://www.sofiane2007.com
http://sofiane2007.oldiblog.com
http://sofiane2006.webobo.com
http://www.websofiane.net
http://www.websofiane.net
http://www.sofiane.c.la/
http://sofiane.c.la/
http://www.sofiane2007.com
http://sofiane2007.oldiblog.com
http://sofiane2006.webobo.com
http://www.websofiane.net
http://www.sofiane2007.com/categorie-970159.html
http://sofiane.c.la/ http://sofiane.c.la/
http://pubmoteur.canalblog.com/
http://www.websofiane.net
http://www.sofiane-online.org
http://hgdfdfqgsdfgqsdv.canalblog.co...4/3165606.html
http://www.sofiane2007.com/categorie-970159.html
http://pubmoteur.canalblog.com/
http://www.websofiane.net
http://www.sofiane-online.org
http://www.sofiane2007.com
http://sofiane2007.oldiblog.com
http://sofiane2006.webobo.com
http://www.websofiane.net
http://www.sofiane2007.com
http://sofiane2007.oldiblog.com
http://sofiane2006.webobo.com
http://www.websofiane.net http://www.websofiane.net
http://www.sofiane.c.la/
http://sofiane.c.la/
http://www.sofiane2007.com
http://sofiane2007.oldiblog.com
http://sofiane2006.webobo.com
http://www.websofiane.net
http://www.sofiane2007.com/categorie-970159.html
http://sofiane.c.la/ http://sofiane.c.la/
http://pubmoteur.canalblog.com/
http://www.websofiane.net
http://www.sofiane-online.org
http://hgdfdfqgsdfgqsdv.canalblog.co...4/3165606.html
http://www.sofiane2007.com/categorie-970159.html
http://www.websofiane.net
http://www.sofiane.c.la/
http://sofiane.c.la/
http://www.sofiane2007.com
http://sofiane2007.oldiblog.com
http://sofiane2006.webobo.com
http://www.websofiane.net
http://www.sofiane2007.com/categorie-970159.html
http://sofiane.c.la/ http://sofiane.c.la/
http://pubmoteur.canalblog.com/
http://www.websofiane.net
http://www.sofiane-online.org
http://hgdfdfqgsdfgqsdv.canalblog.co...4/3165606.html
http://www.sofiane2007.com/categorie-970159.html
http://pubmoteur.canalblog.com/
http://www.websofiane.net
http://www.sofiane-online.org
http://www.sofiane2007.com
http://sofiane2007.oldiblog.com
http://sofiane2006.webobo.com
http://www.websofiane.net
http://www.sofiane2007.com
http://sofiane2007.oldiblog.com
http://sofiane2006.webobo.com
http://www.websofiane.net http://www.websofiane.net
http://www.sofiane.c.la/
http://sofiane.c.la/
http://www.sofiane2007.com
http://sofiane2007.oldiblog.com
http://sofiane2006.webobo.com
http://www.websofiane.net
http://www.sofiane2007.com/categorie-970159.html
http://sofiane.c.la/ http://sofiane.c.la/
http://pubmoteur.canalblog.com/
http://www.websofiane.net
http://www.sofiane-online.org
http://hgdfdfqgsdfgqsdv.canalblog.co...4/3165606.html
http://www.sofiane2007.com/categorie-970159.html
http://pubmoteur.canalblog.com/
http://www.websofiane.net
http://www.sofiane-online.org
http://www.sofiane2007.com
http://sofiane2007.oldiblog.com
http://sofiane2006.webobo.com
http://www.websofiane.net
http://www.sofiane2007.com
http://sofiane2007.oldiblog.com
http://sofiane2006.webobo.com
http://www.websofiane.net
http://www.websofiane.net
http://www.sofiane.c.la/
http://sofiane.c.la/
http://www.sofiane2007.com
http://sofiane2007.oldiblog.com
http://sofiane2006.webobo.com
http://www.websofiane.net
http://www.sofiane2007.com/categorie-970159.html
http://sofiane.c.la/ http://sofiane.c.la/
http://pubmoteur.canalblog.com/
http://www.websofiane.net
http://www.sofiane-online.org
http://hgdfdfqgsdfgqsdv.canalblog.co...4/3165606.html
http://www.sofiane2007.com/categorie-970159.html
http://pubmoteur.canalblog.com/
http://www.websofiane.net
http://www.sofiane-online.org
http://www.sofiane2007.com
http://sofiane2007.oldiblog.com
http://sofiane2006.webobo.com
http://www.websofiane.net
http://www.sofiane2007.com
http://sofiane2007.oldiblog.com
http://sofiane2006.webobo.com
http://www.websofiane.net http://www.websofiane.net
http://www.sofiane.c.la/
http://sofiane.c.la/
http://www.sofiane2007.com
http://sofiane2007.oldiblog.com
http://sofiane2006.webobo.com
http://www.websofiane.net
http://www.sofiane2007.com/categorie-970159.html
http://sofiane.c.la/ http://sofiane.c.la/
http://pubmoteur.canalblog.com/
http://www.websofiane.net
http://www.sofiane-online.org
http://hgdfdfqgsdfgqsdv.canalblog.co...4/3165606.html
http://www.sofiane2007.com/categorie-970159.html
http://www.websofiane.net
http://www.sofiane.c.la/
http://sofiane.c.la/
http://www.sofiane2007.com
http://sofiane2007.oldiblog.com
http://sofiane2006.webobo.com
http://www.websofiane.net
http://www.sofiane2007.com/categorie-970159.html
http://sofiane.c.la/ http://sofiane.c.la/
http://pubmoteur.canalblog.com/
http://www.websofiane.net
http://www.sofiane-online.org
http://hgdfdfqgsdfgqsdv.canalblog.co...4/3165606.html
http://www.sofiane2007.com/categorie-970159.html
http://pubmoteur.canalblog.com/
http://www.websofiane.net
http://www.sofiane-online.org
http://www.sofiane2007.com
http://sofiane2007.oldiblog.com
http://sofiane2006.webobo.com
http://www.websofiane.net
http://www.sofiane2007.com
http://sofiane2007.oldiblog.com
http://sofiane2006.webobo.com
http://www.websofiane.net http://www.websofiane.net
http://www.sofiane.c.la/
http://sofiane.c.la/
http://www.sofiane2007.com
http://sofiane2007.oldiblog.com
http://sofiane2006.webobo.com
http://www.websofiane.net
http://www.sofiane2007.com/categorie-970159.html
http://sofiane.c.la/ http://sofiane.c.la/
http://pubmoteur.canalblog.com/
http://www.websofiane.net

Nov 29 '06 #9

This discussion thread is closed

Replies have been disabled for this discussion.