1

$.ajax でサーバーからコンテンツを取得しています。そして、これらのコンテンツはhtml文字列であり、オーウェンスタイルを持っています.以下は私のコードです:

 <script src="jquery-1.7.1.js" type="text/javascript"></script>
<link href="Default.css" rel="stylesheet" />
<link href="all.css" rel="stylesheet" />
<script type="text/javascript">
    var dataStr = "indexOfStart=" + 0;
    $(document).ready(function () {

        $("#idgetData").click(function () {
            $.ajax({
                type: "post",
                url: "http://localhost:1897/Content/Services/Service1.asmx/GetArticlesDuring",
                dataType: "jsonp",
                data: { indexOfStart: 0, indexOfEnd: 20 },
                jsonp: 'back',
                success: function (result) {
                    var res = decodeURIComponent(result.Result);
                    document.getElementById("content").innerHTML = res;

                },
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    targetDiv = $("#data");
                    if (errorThrown || textStatus == "error" || textStatus == "parsererror" || textStatus == "notmodified") {
                        targetDiv.replaceWith("请求数据时发生错误!");
                        return;
                    }
                    if (textStatus == "timeout") {
                        targetDiv.replaceWith("请求数据超时!");
                        return;
                    }
                },
                complete: function () {
                    //addStyle("Default.css");
                    //addStyle("all.css");
                    document.write('<link href="Default.css" rel="stylesheet" /><link href="all.css" rel="stylesheet" />');
                }
            });
        });
    });
function addStyle(stylePath) {
        var container = document.getElementsByTagName("head")[0];
        var addStyle = document.createElement("link");
        addStyle.rel = "stylesheet";
        addStyle.type = "text/css";
        addStyle.href = stylePath;
        container.appendChild(addStyle);
    }

問題は、コンテンツのスタイルを読み込んで機能させることができないことです。誰か助けてください。

4

2 に答える 2

3

css が読み込まれると、新しい要素にもスタイルが適用されるため、リクエストが終了した後にスタイルを読み込む必要はありません。completeただし、必要に応じて、イベント ハンドラーのヘッドに css スタイルシートを追加することもできます。

于 2013-07-10T15:34:53.220 に答える
1

コードでは、既に持っているスタイルを再度ロードするだけです。新しい HTML コンテンツに新しい CSS スタイルがある場合 (つまり、それらが inDefault.cssでも in でもないall.css場合)、それらを新しいスタイルシートまたは新しいインライン<style>要素に配置し、それをドキュメントに追加する必要があります。

于 2013-07-10T15:38:05.033 に答える