如何使用iframe而不是ajax重新加载部分网页?

时间:2013-01-25 21:31:18

标签: javascript jquery html iframe

我不想使用ajax执行此操作的原因是因为我要刷新的部分实际上是其他人实现的注释插件。我只是在他的html代码中放了一段他们提供的脚本,它在我的文章下面显示了一个评论部分。由于它不是实时评论,我想在它旁边添加一个刷新按钮,使用户只需刷新评论部分即可获得最新评论,而无需重新加载整个页面。

因此,我认为iframe可能是我的选择。但问题是我需要指定iframe的src属性。我不知道我应该使用什么价值,因为我所拥有的仅仅是一段脚本。有人能给我任何想法吗?

顺便说一下,代码片段如下:

<div id="uyan_frame"></div>
<script type="text/javascript" id="UYScript" src="http://v1.uyan.cc/js/iframe.js?UYUserId=1674366" async=""></script>

3 个答案:

答案 0 :(得分:3)

只需使用您在里面谈到的脚本创建一个html页面,并在iframe src属性中使用此文件。

答案 1 :(得分:2)

您可以将上面的代码段放在像

这样的html文件中
<!DOCTYPE html>
<html>
    <body>
         <div id="uyan_frame"></div>
         <script type="text/javascript" id="UYScript" src="http://v1.uyan.cc/js/iframe.js?UYUserId=1674366" async=""></script>
    </body>
</html>

然后将该文件用作iFrame的src,您可以使用javascript刷新。

那就是说,仅仅因为你能做某事并不意味着你应该做点什么。这是一种真正的hacky方式来做你想做的事情。一些替代选择:

  1. 了解您正在使用的脚本正在做什么,并使用它。 根据脚本的名称和片段中的div判断,它可能正在创建一个iframe开始。如果是这样的话,为什么不弄清楚使用浏览器调用它并手动刷新iFrame是什么,或者修改脚本来实现呢?

  2. 使用实时更新框架 - 这可能不适合您,我不知道您的约束,但有很多很棒的评论框架在那里做现场更新。例如,Disqus会浮现在脑海中。其他示例为facebook comments,或者您可以嵌入对branch等外部网站的引用

  3. 使用Ajax - 我有点不清楚这是您正在编写的脚本还是第三方脚本。如果它是你的脚本,那么使用普遍接受的方法来完成这类工作,除非你有一个非常好的理由。您将获得其他人更好的支持,您将获得更普遍适用的经验,并且在大多数情况下,最佳实践获得该名称是有原因的。人们使用“ajax”方法进行实时更新页面,因为它有效且有用。框架在网络上变得越来越不常见,因为它们很笨拙并且使页面的不同部分难以交互。如果你没有充分的理由不使用常规练习,通常是最好的选择。

答案 2 :(得分:0)

你可以这样做:

var iframe = document.getElementById('your_frame_id');
iframe.src = iframe.src;

再次将iframe src设置为其值,这将导致帧刷新,并将使用跨域框架