Javascript 如何从.load()和#x27;佩奇?
我想将整个网站加载到我的网站中。我已经能够用Javascript 如何从.load()和#x27;佩奇?,javascript,jquery,Javascript,Jquery,我想将整个网站加载到我的网站中。我已经能够用$(#preview)完成这项工作。将(“index.php”)加载到我的中。我在这里遇到的问题是背景图像,这是身体的一个属性。我试着制作一个带有背景图像属性的div标签,但当我从body标签中删除该图像时,它的行为并不像我想要的那样(没有填满整个空间) 我的问题是如何从index.php中访问一些内容,使我能够正确预览站点或将属性从某处复制到预览背景图像属性中? 我的代码现在看起来是这样的,经过了大量的尝试和错误(更像是错误和错误,它变得越来越凌乱)
$(#preview)完成这项工作。将(“index.php”)
加载到我的
中。我在这里遇到的问题是背景图像,这是身体的一个属性。我试着制作一个带有背景图像属性的div标签,但当我从body标签中删除该图像时,它的行为并不像我想要的那样(没有填满整个空间)
我的问题是如何从index.php中访问一些内容,使我能够正确预览站点或将属性从某处复制到预览背景图像属性中?
我的代码现在看起来是这样的,经过了大量的尝试和错误(更像是错误和错误,它变得越来越凌乱)
其中bg是div的id,该div在index.php中用作“替换”body标记(也称为具有与body相同的属性)
我不是离它很远,就是离它很近。谢谢你给我的每一条建议。这里有两个问题。一个与如何访问样式属性有关,另一个与
load()
的异步行为有关
$(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);
}
});
}
);
}
);
风格问题
您需要使用$(“#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);
}
);
}
);
}
);
style
和backgroundImage
不是jQuery方法。。您应该尝试.css('background-image',bgd)
的回调将响应数据作为第一个参数发送,您需要在尝试修改它之前获取该数据并将其注入到文档中..load()是异步的。。。将其移动到成功手柄中,您仍然可以在此处使用load。它可以帮助您不用手工解析数据并将数据添加到目标元素中。噢,我没有想到ajax。Tbh我甚至不知道ajax是做什么的,我只是读了一些关于jquery的文章,同时跳过了W3K上的ajax。谢谢你对我这么好地解释了这一点,并且在仍然使用我自己的代码时使它易于理解:)+1到Jonathan F
$(document).ready(
function() {
$("#check").click(
function() {
var bgd;
$("#preview").load("index.php",
function () {
bgd = $("#bg").css("background-image");
$("#preview").css('background-image',bgd);
}
);
}
);
}
);