重新加载iFrame CSS

时间:2011-12-01 18:34:16

标签: javascript jquery html css themes

我在这里遇到了问题。我正在开发一个支持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,就像我在菜单上一样?

提前致谢! =)

2 个答案:

答案 0 :(得分:3)

在尝试选择iFrame的链接元素之前,您需要先选择iFrame的内容。

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

旁注,iFrame可能很丑:)

答案 1 :(得分:0)

这是因为在加载页面时加载了iframe内容,因此除非您使用JQuery / ajax方法或重新加载,否则无法更改其外观。 你可以找到一些关于它的问题 hereherehere

也许你可以通过ajax重新加载你的ifreame,阅读here
最后,您应该以更独特的方式观看this video