使用jQuery刷新(重新加载)页面一次?


82

我想知道如何使用jQuery刷新/重新加载页面(甚至特定的div)一次!

理想情况下,以某种DOM structure可用的方式(请参见onload事件)立即进行,而不会对功能back buttonbookmark功能产生负面影响。

请注意:replace() 由于第三方限制,不允许使用。


我在您的问题中遗漏了一些东西。您“刷新”页面是什么意思。如果页面已加载,立即重新加载只会加载完全相同的内容,对吗?你想达到什么目的?
Doug Neiner'4

我正在处理一个模板,该模板首先“正常”出现,但在刷新/重新加载时被强制放入iFrame中。现在,我也希望页面在其第一个“调用”中也显示在该iFrame中。TIA!
皮特2010年

Answers:


81

好吧,我想我明白了您的要求。试试这个

if(window.top==window) {
    // You're not in a frame, so you reload the site.
    window.setTimeout('location.reload()', 3000); //Reloads after three seconds
}
else {
    //You're inside a frame, so you stop reloading.
}

如果只有一次,那就去做

$('#div-id').triggerevent(function(){
    $('#div-id').html(newContent);
});

如果定期

function updateDiv(){
    //Get new content through Ajax
    ...
    $('#div-id').html(newContent);
}

setInterval(updateDiv, 5000); // That's five seconds

因此,div#div-id内容每五秒钟刷新一次。比刷新整个页面更好。


谢谢,但是我只希望页面刷新/重新加载一次(如果可能,每个浏览器会话)...?
皮特2010年

什么是重新加载的触发因素?某个事件还是只是时间?

触发:页面的第一个“呼叫”(对不起,我的英语有点差
皮特

omfgroflmao,你真是个天才!“编辑”版本正是我想要的(整天……)。是否可以在此处添加可选的时间触发器?这样执行location.reload-比方说-3秒后...?TIA(您真的过得很愉快!)
皮特

是的,当然,只需使用window.setTimeout('location.reload()',3000);来更改location.reload()。



5

用这个:

    <script type="text/javascript">
        $(document).ready(function(){

            // Check if the current URL contains '#'
            if(document.URL.indexOf("#")==-1)
            {
                // Set the URL to whatever it was plus "#".
                url = document.URL+"#";
                location = "#";

                //Reload the page
                 location.reload(true);
            }
        });
    </script>

由于这种if情况,该页面将仅重新加载一次。


4
$('#div-id').click(function(){

   location.reload();
        });

这是正确的语法。

$('#div-id').html(newContent); //This doesnt work

3

您没有jQuery刷新功能,因为这是JavaScript基础。

试试这个:

<body onload="if (location.href.indexOf('reload')==-1) location.replace(location.href+'?reload');">

好东西。您甚至可以将其放在函数内:<body onload =“ javascript:init()”>和函数init(){如果(location.href.indexOf('reload')==-1)location.replace(location。 href +'&reload');}
Adrian P.

2

使用:

<html>
    <head>
        <title>Reload (Refresh) Page Using Jquery</title>
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
        <script type="text/javascript">
            $(document).ready(function () {
                $('#reload').click(function() {
                    window.location.reload();
                });
            });
        </script>
    </head>
    <body>
        <button id="reload" >Reload (Refresh) Page Using</button>
    </body>
</html>

1

将其添加到文件顶部,站点将每30秒刷新一次。

<script type="text/javascript">
    window.onload = Refresh;

    function Refresh() {
        setTimeout("refreshPage();", 30000);
    }
    function refreshPage() {
        window.location = location.href;
    }
</script>

另一个是:添加head标签

<meta http-equiv="refresh" content="30">

1
 - location = location
 - location = location.href
 - location = window.location
 - location = self.location
 - location = window.location.href
 - location = self.location.href
 - location = location['href']
 - location = window['location']
 - location = window['location'].href
 - location = window['location']['href']

您不需要jQuery。您可以使用JavaScript来实现。


0

改用这个

function timedRefresh(timeoutPeriod) {
    setTimeout("location.reload(true);",timeoutPeriod);
}

<a href="javascript:timedRefresh(2000)">image</a>

0

试试这个代码:

$('#iframe').attr('src', $('#iframe').attr('src'));

0

试试这个:

<input type="button" value="Reload" onClick="history.go(0)">


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.