【问题标题】:How to reload part of a web page using iframe instead of ajax?如何使用 iframe 而不是 ajax 重新加载网页的一部分?
【发布时间】:2013-01-26 07:44:15
【问题描述】:

我不想使用ajax来做这件事的原因是因为我要刷新的部分实际上是其他实现的评论插件。我只是在我的 html 代码中添加了他们提供的脚本 sn-p,它在我的文章下显示了一个评论部分。由于它不是实时评论,我想在它旁边添加一个刷新按钮,使用户只需刷新评论部分即可获得最新的 cmets,而无需重新加载整个页面。

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

顺便提一下,sn-p的代码如下:

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

【问题讨论】:

  • 你能把你现在粘贴的脚本代码包括进来吗?如果我们不知道脚本是如何工作的,很难知道如何添加它
  • 我们可以猜出这段代码是怎么说的,但这只是一个猜测......直到你向我们展示。
  • @ben336 我已经包含了代码 sn-p。
  • @MarkSchultheiss 我已经包含了代码 sn-p。
  • 这种方法在我看来有点可疑......只是说

标签: javascript jquery html iframe


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    你可以像这样把上面的sn-p放到一个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. 了解您正在使用的脚本在做什么,并使用它。 从脚本名称和 sn-p 中的 div 判断,它可能正在创建一个 iframe 开始。如果是这样的话,为什么不直接使用浏览器调试它并手动刷新它,或者修改脚本来这样做呢?

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

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

    【讨论】:

    • 非常感谢您提供这些宝贵的信息。您能否为我命名其他一些实时评论框架。谢谢!
    • 我又添加了 2 个示例。不过,我肯定会推荐 Disqus。它是此类事情中使用最广泛的软件。
    【解决方案3】:

    你可以这样做:

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

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

    【讨论】:

    • 谢谢,伙计。但是现在的问题是如何创建这个 iframe 而不是如何刷新 iframe。
    • 创建一个 HTML 页面,在其中包含脚本,然后在您的主页中使用 iframe 来显示新页面。但这对我来说真的很难看:/
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-28
    • 2017-11-26
    • 2015-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-04
    相关资源
    最近更新 更多