4

我不想使用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>
4

3 回答 3

3

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

于 2013-01-25T21:33:34.793 回答
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 开始。如果是这样,为什么不使用浏览器调试它并手动刷新它,或者修改脚本来这样做呢?

  2. 使用实时更新框架——这对你来说可能是不可能的,我不知道你的限制,但是有很多很棒的评论框架可以进行实时更新。例如Disqus 浮现在脑海中。其他示例是facebook 评论,或者您可以嵌入对外部站点(如分支)的引用

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

于 2013-01-25T22:26:17.723 回答
0

你可以这样做:

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

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

于 2013-01-25T21:36:22.080 回答