【问题标题】:Is it possible to load JavaScript based on theme?是否可以基于主题加载 JavaScript?
【发布时间】:2012-05-29 14:09:51
【问题描述】:

我正在为一个有 3 个可用主题的客户开发一个网站。我正在使用 app_themes 系统使用户能够更改样式。每个主题使用几个不同的 JavaScript 文件来加载自定义字体。根据所选主题加载这些 JavaScript 文件的最佳方法是什么?

据我所知,Kentico 使用与默认 ASP.net 网络表单相同的应用主题系统。

理想情况下,我希望能够将适当的 JavaScript 文件添加到相应的 App_Theme 文件夹,并让 ASP 将标签添加到文档头。如果这不是一个选项,我考虑编写一个 ScriptLoader JavaScript,它将检查样式表标签以确定正在使用的主题。如果我可以将主题名称作为类属性添加到 body 元素上,然后查看并引入适当的脚本,那就更好了。

【问题讨论】:

    标签: asp.net kentico app-themes


    【解决方案1】:

    如果您不使用 Kentico,我想我找到了一个涉及制作 webPart 或控件的解决方案。

     public static void AddScriptToHead(HtmlHead h, string script, bool AddScriptTags)
    {
        Literal l = new Literal();
    
        if (AddScriptTags)
            l.Text = "<script type=\"text/javascript\" src=\""
                    + script +
                    "\"></script>";
        else
            l.Text = script;
        h.Controls.Add(l);
    }
    
    protected void SetupControl()
    {
        if (this.StopProcessing)
        {
            // Do nothing
        }
        else
        {
            string theme = Page.Theme;
    
    
            if (theme != null)
            {
    
                if (theme.Equals("Card"))
                {
                    AddScriptToHead(Page.Header, "~/App_Themes/Cardamon/js/cufon-colors-classic.js", true);
                    AddScriptToHead(Page.Header, "~/App_Themes/Cardamon/js/Charis_SIL_700.font.js", true);
                }
                else if (theme.Equals("CardamonWave"))
                {
                    AddScriptToHead(Page.Header, "~/App_Themes/Cardamon/js/cufon-colors-wave.js" ,true);
                    AddScriptToHead(Page.Header,  "~/App_Themes/Cardamon/js/Lobster_14_400.font.js",true);
                }
                else if (theme.Equals("CardamonAncient"))
                {
                    AddScriptToHead(Page.Header, "~/App_Themes/Cardamon/js/cufon-colors-ancient.js", true);
                    AddScriptToHead(Page.Header, "~/App_Themes/Cardamon/js/Charis_SIL_700.font.js", true);
                }
                else
                {
                    //Y U no theme?
                }
            }
    
        }
    }
    

    我想扩展它以在将来接受脚本和主题作为属性,但这现在可以工作。

    【讨论】:

      猜你喜欢
      • 2014-07-29
      • 1970-01-01
      • 1970-01-01
      • 2017-07-28
      • 2012-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-16
      相关资源
      最近更新 更多