在PageLoad上更改Aspx页面正文图像 - ASP.Net

时间:2014-01-30 09:37:51

标签: c# javascript asp.net css

我有一个网站,我在Asp.Net中放在一起,遇到了一个问题,我希望我的一个页面为页面的背景加载“不同的图像”。原始图像(也在整个站点中使用)位于CSS脚本文件中:

body   
{
   background-image: url('../Images/SkyBackMain.jpg');
}

然而,在我想要更改图像的页面上,我已经在加载事件的代码中放置了javascript,但是我收到了几个错误。这是代码背后的代码:

public partial class TechCall : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
    string script = "<script type=\"text/javascript\">
        document.body.style.background = \"url('../Images/CPUBack_2nd.jpg')";
        document.body.style.backgroundRepeat = 'no-repeat';
    </script>\";

    ClientScript.RegisterClientScriptBlock(this.GetType(), "background-changer-script", script);
}
}

我得到的错误如下:

  1. "<script type=\"text/javascript\"> - 常量错误中的换行符。
  2. \"url('../Images/CPUBack_2nd.jpg')"; - 无效的表达式术语和;预期。
  3. 'no-repeat'; - 字符文字中的字符过多。
  4. </script>\"; - 错误:只能将赋值,调用,递增,递减和新对象表达式用作语句。
  5. 在类似的帖子上研究这个问题时,我应用了Javascript概念,但是我得到了这些错误。我在这里遗漏了什么,而我需要在代码隐藏页面之前将Javascript放在其他地方吗?如果是这样的话,我对它还需要的地方感到茫然。非常感谢您的见解。

1 个答案:

答案 0 :(得分:0)

我相信你忘了做一个合适的连接

 string script = "<script type=\"text/javascript\">"
                            + "document.body.style.background = \"url('../Images/CPUBack_2nd.jpg')"
                            + "document.body.style.backgroundRepeat = 'no-repeat';"
                            + "</script>\"";

修改 的 这是一个更好的方法(不那么混乱)

StringBuilder script = new StringBuilder();
script.Append("<script type=\"text/javascript\">");
script.Append("document.body.style.background = \"url('../Images/CPUBack_2nd.jpg')\";");
script.Append("document.body.style.backgroundRepeat = 'no-repeat';");
script.Append("</script>");
this.ClientScript.RegisterClientScriptBlock(this.GetType(), "changeBackground", script.ToString());

请阅读有关如何从服务器端注册客户端脚本的更多信息

RegisterClientScriptBlock