2012-05-15 71 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', 
    }); 

}); 

或服務器上,有條件地呈現或動態建立的樣式表。