2011-12-01 94 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代码片段! =] –