Javascript 除了AJAX和iframe之外,还有其他方法刷新页面的一部分吗?

Javascript 除了AJAX和iframe之外,还有其他方法刷新页面的一部分吗?,javascript,jquery,html,ajax,Javascript,Jquery,Html,Ajax,我现在正在使用一个第三方评论插件,它提供的只是一段脚本,如下所示: <div id="uyan_frame"></div> <script type="text/javascript" id="UYScript" src="http://v1.uyan.cc/js/iframe.js?UYUserId=1674366" async=""> </script> 由于它不是一个实时评论插件,我想在它旁边添加一个刷新

我现在正在使用一个第三方评论插件,它提供的只是一段脚本,如下所示:

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

由于它不是一个实时评论插件,我想在它旁边添加一个刷新按钮,手动重新加载它以查看最新的评论,而不是重新加载整个页面。(我知道Disqs是一个很好的评论插件,但由于我们的目标是中国用户,我必须使用当前的一个)


由于它是一个第三方插件,我没有太多的控制权。我也认为iframe是一个丑陋的方式来实现这个部分令人耳目一新的东西。那么,有没有其他方法来实现这一点?就像每次单击刷新按钮一样,它将删除此脚本生成的所有HTML元素,重新创建此脚本标记,将其附加到适当的位置,然后再次运行

既然您标记了jQuery,我假设您正在使用它

尝试将单击处理程序添加到刷新按钮,然后使用.html() 例子: $('#uyan_frame').html('')


当您调用.html时,它应该替换您调用它的元素,并且它应该调用您传入的字符串中的任何脚本。作为免责声明,这没有经过测试。

您不必使用iframe,因为它很慢。您可以做的是创建一个div或section并给它一个id或class,然后创建一个按钮,当单击该按钮时,它将获取一个脚本并在您创建的div或section中附加正确的html内容。为了使代码更容易理解,代码如下所示

<section id="content"></section>
<button id="refresher"></button>
<script>

$('#refresher').click(function(){
    //Load your script like so
    $.getScript('url of the script you are trying to get', function(){...})

    //Load your content here
    $('#content').html('Current contents will be erased and will be replaced by whatever you placed here')

    //...or if you need ajax fetching 
    $.ajax({
      url: url,
      success: function(){
        $('#content').html('place your content here and this will erase old content')
      }
    });

})

</script>

$(“#刷新器”)。单击(函数(){
//像这样加载脚本
$.getScript('您试图获取的脚本的url',function(){…})
//在此处加载您的内容
$('#content').html('当前内容将被删除,并将替换为您在此处放置的内容')
//…或者如果您需要ajax抓取
$.ajax({
url:url,
成功:函数(){
$('#content').html('将您的内容放在此处,这将删除旧内容')
}
});
})

我会询问第三方公司如何在不刷新整个页面的情况下刷新评论。他们确实开发了这个,他们必须有一种方法来轻松地更新它

例如,uycoment.refresh(document.getElementById('comment'))

如果您不想询问他们,也可以通过查看他们的javascript代码来找到这种解决方案


您可以不使用第三方提供的代码,即使用ajax替换div、刷新iframe等,但根据我的经验,它总是会让您的代码变得更混乱。

为什么不使用ajax?您已经在使用javascript了。使用它的一个公共特性刷新dom元素有什么害处?@KaiQing我不确定AJAX是否适用于我的情况,因为这是一种跨域访问。也许我应该使用JSONP?但是在我的例子中,我应该如何格式化JSONP的url呢?使用AJAX并不需要使用iFrame。使用AJAX和divs/spans,这可能是最好的实践方法。因为这是一个第三方插件,在你的问题中,一个指向该第三方的超链接即使不是必需的,也是很好的-他们的文档会有所帮助,假设它是一个公开可用的库。@哈弗,你能给我一些关于如何使用AJAX实现这一点的更详细的信息吗?先谢谢你。