没戏,每个单独的页面要单独引入css样式表

解决方案 »

  1.   

    不行的,你把样式重新在Iframe定义一下不就行了。
      

  2.   

    谢谢各位
    现在是根据网上找到的一个换皮肤代码应用到程序中(CSS+JS切换皮肤代码 http://www.dangbao.net/article.asp?id=45)主要是通过以下javascript 不刷新页面换页面的css页面:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>123</title>
    <link href="css/default.css" rel="stylesheet" type="text/css" />
        <link href="css/main0.css" rel="stylesheet" type="text/css" id="cssfile" />
        <script language="JavaScript" src="javascript/skin.js" type="text/javascript"></script>
    <body>
        <ul id="skin">
    <li id="skin_0" title="灰色">灰色</li>
    <li id="skin_1" title="绿色">绿色</li>
    <li id="skin_2" title="黄色">黄色</li>
    <li id="skin_3" title="蓝色">蓝色</li>
    <li id="skin_4" title="粉色">粉色</li>
    <li id="skin_5" title="紫色">紫色</li>
    </ul>
        <div id="div_side_0">
        <div id="news">
        <h1 class="title">1</h1>
        <div id="news_list">    </div>
        </div>
        </div>
        <div id="div_side_1">
        <div id="game">
        <h1 class="title">2</h1>
        <div id="game_list">    </div>
        </div>
        </div>
        
            <div id="div_side_2">
            <div id="other">
        <h1 class="title">3</h1>
        <div id="other_list">    </div>
        </div>
        </div>
    </body>
    </html>
    JS:function $(obj){
    return document.getElementById(obj);
    }var skin={};skin.addEvent=function(){
    var skins =$("skin").getElementsByTagName("li");
    for (i=0;i<skins.length;i++)
    {
    skins[i].onclick=function(){skin.setSkin(this.id.substring(5))};
    }
    }skin.setCookie=function(n){
    var expires=new Date();
    expires.setTime(expires.getTime()+24*60*60*365*1000);
    var flag="Skin_Cookie="+n;
    document.cookie=flag+";expires="+expires.toGMTString();
    }skin.readCookie=function(){
        var skin=0
        var mycookie=document.cookie;
        var name="Skin_Cookie";
        if(mycookie.indexOf(name+"=")==-1){
            skin=0;
        }
        else{
            var values=mycookie.split(name+"=")[1].split(";")[0];
            if (values!=null)
            {
                skin=values;
            }
            else{
                skin=0;        
            }
        }
        return skin;
        
    }skin.setSkin=function(n){
    var skins =$("skin").getElementsByTagName("li");
    for (i=0;i<skins.length;i++)
    {
    skins[i].className="";
    }
    skin.setCookie(n);
    $("skin_"+n).className="selected";
    $("cssfile").href="css/main"+n+".css";
    }window.onload=function(){
    skin.setSkin(skin.readCookie());
    skin.addEvent();
    }现在遇到的问题就是 在我的页面中用了IFRAME 调用其他页面,通过这个js换页面效果,结果就是页面本身有变化了,IFRAME内地页面没有变化,有什么方法可以解决这个问题吗?
      

  3.   

    在iframe里把CSS换一下就可以了
      

  4.   

    思路事前是你iframe里的可换css link的id也是 selected(改成别的也成,js也同时要改)
    如果保存cookie那就在iframe截入时也判断cookie然后设置 css连接或在父窗口写iframe.src后面跟个样式参考传给iframe页面
    总之iframe页面也要有设置css连接样式表的JS
    <script>
    skin.setSkin=function(n){
        var skins =$("skin").getElementsByTagName("li");
        for (i=0;i<skins.length;i++)
        {
            skins[i].className="";
        }
        skin.setCookie(n);
        $("skin_"+n).className="selected"; 
        $("cssfile").href="css/main"+n+".css";
    //这里了,给iframe包含页面传个方法,当然也可以直接写在iframe包含的页里
    window.frames.myfir.$ = $;
    window.frames.myfir.$('cssfile').href='css/main' + n + '.css';
    }</script><iframe name="myfir" src=""></iframe>
      

  5.   

    上面写错了,是在父页面载入时传参数给iframe页面,然后iframe页面得到这个参数设置link哪个样式表,或者在iframe onload后由父页面设置也行
    比如<iframe name="myfir" src="myweb.html?skin=skin_5"></iframe>