我正在尝试刷新我网站的一部分(左侧部分显示包含主题的列表),但它对我不起作用。如果单击刷新按钮,我会在左侧部分看到一个非常奇怪的屏幕。我正在使用的脚本是:
$(function() {
$("#refresh").click(function(evt) {
$(".bgleft").load("left.php")
evt.preventDefault();
})
})
我得到的奇怪屏幕是一个白色的空白屏幕,上面有一个随机文本(不存在)。我不明白为什么会这样。有关实例:转到(已删除) 然后单击左框中的“刷新”。
修改
HTML代码段:<body class="bgleft">
答案 0 :(得分:1)
在left.php中有两行显示theese字符的代码。
for(var n = 1; n < 7; n++)
document.write(String.fromCharCode(Math.round(Math.random()*25)+97));
尝试删除它们,它应该有帮助。
另外,在其他答案中也很难过,只发送<body>
的内容作为回应,因为脚本已经包含在网站中。
答案 1 :(得分:1)
在进行部分更新时发送完整的HTML页面通常不是一个好主意。如果你看一下你的left.php产生了什么,那就是你在iframe中使用的完整页面(包含<html>
标签和所有内容)。
创建一个仅呈现left.php正文的页面,并将其用于部分更新。或者查看here了解如何刷新iframe。
PS:在设计,动态/ javascript功能和未来可扩展性方面,框架集已被绝对弃用并且确实受到限制。考虑不使用它们......答案 2 :(得分:0)
为什么要在当前HTML
代码中加载同一页HEAD
,BODY
,BODY
?
$(function() {
$("#refresh").click(function(evt) {
evt.preventDefault();
$(window.top.window).find('frame[name=left]').reload();
})
})
答案 3 :(得分:0)
您应该只获取要更新的内容,而不是整个页面。目前,正在提取整个页面,包括html
,body
甚至script
标记。由于这个原因,jQuery和其他脚本也会再次加载。这可能会在以后引起重大问题。