0

Web サイト全体を自分の Web サイトにロードしたいと考えています。でこれを行うことができまし$(#preview).load("index.php")<div id="preview"></div>。ここにアクセスするのに問題があるのは、body のプロパティである背景画像です。background-image 属性を使用して div タグを作成しようとしましたが、body タグから画像を削除すると、意図したとおりに動作しませんでした (スペース全体を埋めていませんでした)。

私の質問はこれです。index.php から何かにアクセスして、サイトを正しくプレビューしたり、属性をどこかからプレビュー背景画像属性にコピーしたりできますか?

私のコードは、いくつかの広範な試行錯誤の後、次のようになります(エラーとエラーのようで、ますます面倒になります)

    $(document).ready(
        function() {    
            $("#check").click(
                function() {
                    var bgd;
                    $("#preview").load("index.php", 
                        function () {
                            bgd = $("#bg").css("background-image");
                        }
                    );
                    $("#preview").style.backgroundImage(bgd);
                }
            );
        }
    );

bg は、index.php の「代替」ボディ タグとして機能する div の ID です (ボディと同じ属性を持つ別名)

私はそれから遠いか、途方もなく近いです。私が得ることができるすべてのアドバイスに感謝します。

4

2 に答える 2

1
   $(document).ready(
        function() {    
            $("#check").click(
                function() {
                    $.ajax({
                             url: 'index.php',
                             success: function(data){
                                 data = $('data').html();
                                 $('#preview').html(data);
                                 bg = $('data').find('#bg').css('background-image');
                                 $('#preview').css('background-image',bg);
                             }
                        });

                }
            );
        }
    );
于 2013-01-17T22:46:42.127 に答える
0

ここに2つの問題があります。1つはスタイルのプロパティにアクセスする方法に関係し、もう1つはの非同期動作に関係しload()ます。

スタイルの問題

を使用する必要があります$("#preview").css('background-image',bgd)。使用していた最初のメソッドは、次のように、jQueryでラップされていない要素にアクセスすることで維持できます。

$("#preview")[0].style.backgroundImage(bgd);

非同期の問題

2番目の問題は、.load()がすぐに戻る非同期呼び出しであるということです。コードの次の行が実行され、bdg(ほとんどの場合)まだ定義されていません。その後、load()完了すると、成功ハンドラーが実行されbdg、読み込まれたページの背景に設定されますが、手遅れです。

を成功ハンドラーに移動する$("#preview").css('background-image',bgd)と、その問題が修正されます。

   $(document).ready(
        function() {    
            $("#check").click(
                function() {
                    var bgd;
                    $("#preview").load("index.php", 
                        function () {
                            bgd = $("#bg").css("background-image");
                            $("#preview").css('background-image',bgd);
                        }
                    );
                }
            );
        }
    );
于 2013-01-17T22:58:35.883 に答える