【问题标题】:Changing Aspx Page Body Image on PageLoad - ASP.Net在页面加载时更改 Aspx 页面正文图像 - ASP.Net
【发布时间】:2014-02-22 12:40:51
【问题描述】:

我在 Asp.Net 中建立了一个网站,但遇到了一个问题,我希望我的一个页面为页面背景加载“不同的图像”。原始图像也用于整个网站的大部分内容,位于 CSS 脚本文件中:

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

但是,在我想要更改图像的页面上,我已将 javascript 放置在 load 事件的代码中,但我遇到了几个错误。这是代码背后的代码:

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. "&lt;script type=\"text/javascript\"&gt; -- 换行不断出错。
  2. \"url('../Images/CPUBack_2nd.jpg')"; -- 无效的表达式术语和;预期的。
  3. 'no-repeat'; -- 字符文字中的字符太多。
  4. &lt;/script&gt;\"; -- 错误:只有赋值、调用、递增、递减和新对象表达式可以用作语句。

在类似的帖子中研究这个问题时,我应用了 Javascript 概念,但我得到了这些错误。我是否在这里遗漏了什么,而我需要在代码隐藏页面之前将 Javascript 放在其他地方?如果是这样,我不知道它还需要在哪里。非常感谢您的洞察力。

【问题讨论】:

  • 这种方式是必须的吗,为什么干脆在这个特定的页面写脚本,也试试用jquery做起来很简单

标签: c# javascript asp.net css


【解决方案1】:

我相信你忘了做适当的连接

 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

【讨论】:

  • 顺便说一句,我没有尝试你在那个 javascript 代码中做了什么
  • 这根本不起作用;为什么我需要把它变成一个字符串......?它不是输入,而是需要运行的实际代码。
  • 我认为您需要阅读有关 RegisterClientScriptBlock msdn.microsoft.com/en-us/library/btf44dc9%28v=vs.110%29.aspx 的更多信息,您将 javascript 代码作为字符串参数传递,这就是为什么您需要将所有 javascript 连接为字符串,然后才能在负载中使用它方法
  • 好的,我试试这个。但是,除了您的建议之外,我也有这段 Javascript 并且想知道这是否需要在母版页或其他地方进行:&lt;script type="text/javascript"&gt; document.body.style.background = "url('../Images/CPUBack_2nd.jpg')"; document.body.style.backgroundRepeat = 'no-repeat'; &lt;/script&gt;
  • 请尝试我的回答并告诉我它是否有效,您可以将此脚本添加到要更改其背景的页面中
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多