我在这里遇到了问题。我正在开发一个支持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,就像我在菜单上一样?
提前致谢! =)
答案 0 :(得分:3)
在尝试选择iFrame的链接元素之前,您需要先选择iFrame的内容。
$("#ifr_main").contents().find("link").attr("href", theme_name);
旁注,iFrame可能很丑:)
答案 1 :(得分:0)
这是因为在加载页面时加载了iframe内容,因此除非您使用JQuery / ajax方法或重新加载,否则无法更改其外观。 你可以找到一些关于它的问题 here,here和here
也许你可以通过ajax重新加载你的ifreame,阅读here
最后,您应该以更独特的方式观看this video。