0

我想将整个网站加载到我的网站中。我已经能够在$(#preview).load("index.php")我的<div id="preview"></div>. 我在这里访问时遇到的麻烦是背景图像,它是身体的一个属性。我尝试使用 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 是 div 的 id,它在 index.php 中用作“替代”body 标签(又名与 body 具有相同的属性)

我要么离它很远,要么离得很近。感谢我能得到的每一条建议。

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

这里有两个问题。一个与您如何访问样式属性有关,另一个与load().

风格问题

您将需要使用$("#preview").css('background-image',bgd). 您使用的第一种方法仍然可以通过访问非 jQuery 包装元素来保留,如下所示:

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

异步问题

第二个问题是 .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 回答