2012-05-15 128 views
2

我遇到了一些CSS + javascript的问题。你看,我试图做一些wysiwyg网页风格编辑器,其中有一个iframe加载一个包含这样的代码的网页。jQuery,编辑内联样式标记

<head> 
<style id=mystyle> 
    /* something is here */ 
</style> 
</head> 
<body> 
    <h1>Other, quite a lot autogenerated stuff along with javascript that add some interactivity.</h1> 
</body> 

现在,我需要修改#mystyle的内容,以便它实时反映到页面中。使用jQuery,我试图做这样使用多种技术,如:

  1. $(#mystyle).html(newcss);
  2. $(#mystyle).replaceWith("<style id='mystyle'>"+newcss+"</style>")
  3. $(#mystyle).after("the newcss along with style tag"),然后删除旧的。
  4. $(#mystyle).delete() //只是为了看看会发生什么。

上述所有未能改变网页的外观。事实上,删除标签(4.)并没有使页面变得难看,而且我使用“Inspect Element”进行了检查,但html确实发生了变化,但外观没有改变。所以......我做错了什么?

+0

怎么样帮助我们了上jsfiddle.net – Dhiraj

回答

2

使用html似乎工作就好了。见:

http://jsfiddle.net/tGSkS/

+0

样本事实证明它的工作,但CSS优先级是有些不对的,这就是为什么我想不通为什么它不能预览,但相反,当重新加载新的CSS看起来很好。对不起周围的杂音。 – asdacap

+0

更新:其实优先顺序也是正确的。问题是在加载旧css的网页中有另一个链接标记,导致所有这些混乱。我对此感到非常抱歉。这样的小错误损失了数小时 – asdacap

0

如果有你想要的风格在页面加载特定的元素,你可以做以下

$(function(){ 

    $('element-selector').css({ 
    style1:'value', 
    style2:'value', 
    style2:'value', 
    }); 

}); 

或服务器上,有条件地呈现或动态建立的样式表。