我有一个网站,我在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);
}
}
我得到的错误如下:
"<script type=\"text/javascript\">
- 常量错误中的换行符。\"url('../Images/CPUBack_2nd.jpg')";
- 无效的表达式术语和;预期。'no-repeat';
- 字符文字中的字符过多。</script>\";
- 错误:只能将赋值,调用,递增,递减和新对象表达式用作语句。在类似的帖子上研究这个问题时,我应用了Javascript概念,但是我得到了这些错误。我在这里遗漏了什么,而我需要在代码隐藏页面之前将Javascript放在其他地方吗?如果是这样的话,我对它还需要的地方感到茫然。非常感谢您的见解。
答案 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());
请阅读有关如何从服务器端注册客户端脚本的更多信息