0

我正在尝试仅刷新我网站的一部分(左侧显示带有主题的列表),但这对我不起作用。如果单击刷新按钮,我会在左侧部分看到一个非常奇怪的屏幕。我正在使用的脚本是这样的:

$(function() {
   $("#refresh").click(function(evt) {
      $(".bgleft").load("left.php")
      evt.preventDefault();
   })
})

我得到的奇怪屏幕是一个白色的空白屏幕,上面有一个随机文本(不存在)。我不明白为什么会这样。对于一个实时示例:转到(已编辑)并单击左侧框架中的“刷新”。

编辑:

HTML 片段:<body class="bgleft">

4

4 回答 4

1

在 left.php 中有两行代码显示这些字符。

for(var n = 1; n < 7; n++)
document.write(String.fromCharCode(Math.round(Math.random()*25)+97));

尝试删除它们,它应该有帮助。

在其他答案中也很悲伤,<body>因为脚本已经包含在站点中,所以只发送内容作为响应。

于 2012-09-28T08:32:46.653 回答
1

在进行部分更新时发送完整的 HTML 页面通常不是一个好主意。如果您查看 left.php 生成的内容,它就是<html>您在 iframe 中使用的完整页面(带有标签和所有内容)。

创建一个仅呈现 left.php 正文的页面并将其用于部分更新。或者在这里查看如何刷新 iframe。

PS:框架集在设计、动态/javascript 功能和未来可扩展性方面已被彻底弃用,并且确实受到限制。考虑不使用它们...

于 2012-09-28T08:39:02.863 回答
0

你怎么在当前标签内加载同一个页面HTMLHEADBODYBODY

$(function() {
    $("#refresh").click(function(evt) {
        evt.preventDefault();         
        $(window.top.window).find('frame[name=left]').reload();
    })
})
于 2012-09-28T08:36:32.113 回答
0

您应该只获取要更新的内容,而不是整个页面。目前,正在获取整个页面,包括htmlbody甚至script标签。jQuery 和其他脚本也因此被再次加载。这可能会在以后引起重大问题。

于 2012-09-28T08:39:44.857 回答