2011-12-01 96 views
1

我在這裏遇到了問題。我正在開發一個支持css主題的系統。到目前爲止,我可以根據需要更改主題,但系統由兩部分組成:重新加載iFrame CSS

首先是系統的「骨架」:它包含菜單和用於更改主題的選項。該菜單加載第二部分的內容,這主要由iFrame組成,這將加載由菜單上的點擊調用的模塊。通過讀取菜單中單擊鏈接

$("link").attr("href", "css/temas/"+theme_name+".css"); 

的THEME_NAME採集:

我可以改變使用下面的代碼系統的第一部分的主題。系統在這裏沒問題,不需要改變。除了改變主題之外,它還記錄一個cookie,用於進一步讀取系統主題。

因此,系統的第二部分也讀取該cookie來應用主題,但它不會即時更改爲主要部分!

例如,當我單擊主題圖標時,它立即應用主題而不刷新屏幕,但第二部分不會發生這種情況!它應用了主題,但僅當我重新加載iFrame並重新加載時才顯示,不是很酷!

我想用下面的代碼來改變的iFrame主題:

$("#ifr_main link").attr("href", theme_name); 

哪裏#ifr_main是iFrame的名字!

有沒有人知道如何解決這個問題,並應用新的CSS無需刷新頁面,就像我在菜單上做的那樣?

在此先感謝! =)

回答

3

您需要在嘗試選擇鏈接元素之前先選擇iFrame的內容。

$("#ifr_main").contents().find("link").attr("href", theme_name); 

側面說明,iFrame中可以醜:)

+0

iframes不*要*難看,這一切都在你如何使用它們。滾動條是醜陋的。 –

+0

Whoooa哥們!我嘗試了類似的使用.find(),但我失敗了! HAHAH! 該解決方案完美謝謝! 關於iFrame我認爲就像@Madmartigan! –

+0

哈哈哈不錯的嘗試@jValdron! :P –

0

這是因爲當加載你的頁面的iframe的內容加載,那麼以後呢,你不能改變它的尋找,除非你正在使用JQuery/AJAX方法或重新加載。
呦可以找到它
hereherehere

一些問題也許可以通過AJAX刷新你ifreame,讀here
最後,你應該看this video更多的獨特方式。

+0

其實我可以,因爲我正在做主要部分。尋找我的代碼爲主要部分剪切和@jValdron代碼片段! =] –