|
<< Click to Display Table of Contents >> Adicionando JS ou CSS no head via código |
![]() ![]()
|
Tive problemas usando a mesma masterpage para páginas que estavam no raiz e em sub-pastas.
Elas apontavam para um CSS ou JS que ficava em outra pasta... como o código html da masterpage não aceita a tag "~/" para indicar o raiz do projeto.
Dava problemas e o navegador não encontrava os arquivos css ou js quando site era movido para o IIS.
Este código abaixo resolve o problema pois coloca o CSS e JS via programação usando o ~/
protected void AddCSS(string nome)
{
HtmlLink cssLink = new HtmlLink();
cssLink.Href = "~/css/" + nome;
cssLink.Attributes.Add("rel", "stylesheet");
cssLink.Attributes.Add("type", "text/css");
this.Page.Header.Controls.Add(cssLink);
this.Page.Header.Controls.Add(new LiteralControl("\r\n"));
}
protected void AddJS(string nome)
{
HtmlGenericControl Include = new HtmlGenericControl("script");
Include.Attributes.Add("type", "text/javascript");
Include.Attributes.Add("src", HttpRuntime.AppDomainAppVirtualPath + "js/" + nome);
this.Page.Header.Controls.Add(Include);
this.Page.Header.Controls.Add(new LiteralControl("\r\n"));
}
protected void StartLavaLamp()
{
//JavaScript!
HtmlGenericControl JsLavaLamp = new HtmlGenericControl("script");
JsLavaLamp.Attributes.Add("type", "text/javascript");
JsLavaLamp.InnerHtml = "\r\n" +
"$(function () { \r\n" +
" $('#menu_principal').lavaLamp({ \r\n" +
" fx: 'backout', \r\n" +
" speed: 700, \r\n" +
" click: function (event, menuItem) {\r\n" +
" return true; \r\n" +
" } \r\n" +
" }); \r\n" +
"}); \r\n";
this.Page.Header.Controls.Add(JsLavaLamp);
this.Page.Header.Controls.Add(new LiteralControl("\r\n"));
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
AddCSS("layout.css");
AddCSS("fontes.css");
AddCSS("botoes.css");
AddCSS("lavalamp.css");
AddJS("jquery-1.2.3.min.js");
AddJS("jquery.easing.min.js");
AddJS("jquery.lavalamp.min.js");
StartLavaLamp();
}
}