1

私は次のコードを使用しています:

    <%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site1.master.cs" Inherits="WebApplication3.Site1" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <link href="style.css" rel="stylesheet" />
    <script type="text/javascript">

        function change(color) {
            document.bgColor = color;
        }

    </script>
    <asp:ContentPlaceHolder ID="head" runat="server">
    </asp:ContentPlaceHolder>
</head>
<body>
    <form id="form1" runat="server">

        <p>&nbsp;</p>
        <div class="green">
            <div id="slatenav">
                <ul>
                    <li><a href="WebForm3.aspx" id="green" onclick="change('green')">Home</a></li>
                    <li><a href="WebForm4.aspx"  id="red" onclick="change('red')">About Us</a></li>
                </ul>
            </div>
        </div>
        <div>
            <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
            </asp:ContentPlaceHolder>
        </div>
    </form>
</body>
</html>

なぜ正しく機能しないのですか?

4

2 に答える 2

3

を使用するべきではありませんがdocument.bgColor、それでも機能するはずです。問題はそれではなく、JavaScriptをキャンセルするリンクで使用していることです(リンクは新しいページをロードしています)。

これを試してみてください:

<script type="text/javascript">
     function change(color) {
     document.bgColor = color;
     return false;
     }
</script>
<div id="slatenav">
    <ul>
        <li><a href="WebForm3.aspx" id="green" onclick="return change('green');">Home</a></li>
        <li><a href="WebForm4.aspx"  id="red" onclick="return change('red');">About Us</a></li>
    </ul>
</div>

そしてサンプルフィドル

新しいページは読み込まれませんが、Javascript起動します。そして、他の人が示唆しているように、を使用してdocument.body.style.backgroundColorください。

于 2013-03-26T01:24:06.713 に答える
1

document.bgColorは非推奨です。代わりにdocument.body.style.backgroundColorを使用してください

https://developer.mozilla.org/en/docs/DOM/document.bgColorから

于 2013-03-26T01:21:09.513 に答える