【问题标题】:Enabling refreshing for specific html elements only仅对特定的 html 元素启用刷新
【发布时间】:2012-06-06 03:52:07
【问题描述】:

我想知道如何只刷新我网站中的特定元素,而不是整个网页?我正在谈论的元素是一个加载速度很慢并且可能会遇到连接超时的 Flash 应用程序。我想让用户只刷新那个元素/falsh 应用程序。我怎么做?下面我有一个更新 HTML 元素的 Ajax 函数,但不知道如何将它应用到我的情况。

<head>
    <script type="text/javascript">
        function loadXMLDoc() {
            var xmlhttp;
            if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
                xmlhttp = new XMLHttpRequest();
            } else { // code for IE6, IE5
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            xmlhttp.onreadystatechange = function () {
                if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                    document.getElementById("myDiv").innerHTML = xmlhttp.responseText;
                }
            }
            xmlhttp.open("GET", "ajax_info.txt", true);
            xmlhttp.send();
        }
    </script>
</head>
<body>
    <div id="myDiv">
        <h2>Let AJAX change this text</h2>
    </div>
    <button type="button" onclick="loadXMLDoc()">Change Content</button>
</body>

【问题讨论】:

  • 为什么不让flash刷新里面的内容呢?而不是让 AJAX 一次又一次地将 swf 加载到 DOM 中
  • 好点,但我无法控制闪存文件。是别人开发的复杂应用,如果理解有误,请指正
  • 你能把它放在 iFrame 里吗?我认为设置 iFrame 的 location.href 会导致它刷新。
  • 是的,我可以把它放在一个 iFrame 中……目前它在一个对象标签中
  • 正如我所说,我基本上想要一个选项让用户在点击/请求时仅刷新 Flash 对象,而不是再次重新加载整个页面

标签: javascript html ajax


【解决方案1】:

试试这个:

function reload(){
    var container = document.getElementById("yourDiv");
    var content = container.innerHTML;
    container.innerHTML= content; 
    
   //this line is to watch the result in console , you can remove it later	
    console.log("Refreshed"); 
}
<a href="javascript: reload()">Click to Reload</a>
    <div id="yourDiv">The content that you want to refresh/reload</div>

希望它有效。告诉我

【讨论】:

  • 这将删除该元素上的所有事件侦听器。谨慎使用。
【解决方案2】:

尝试创建一个运行它的 javascript 函数:

document.getElementById("youriframeid").contentWindow.location.reload(true);

或者也许使用 HTML 解决方法:

<html>
<body>
<center>
      <a href="pagename.htm" target="middle">Refresh iframe</a>
      <p>
        <iframe src="pagename.htm" name="middle">
      </p>
</center>
</body>
</html>

两者都可能是您正在寻找的...

【讨论】:

  • 感谢您的回答。您发布的 Javascript 解决方案:它究竟是如何工作的,是自动激活还是用户请求/激活?
  • 嗨德克斯特.. 如果你能看到,有一个链接“刷新 iframe”。如果用户单击它,它将刷新 iFrame。所以它需要用户激活/干预。
  • 这帮助我解决了我在 UI 自动化(或所有事情)方面遇到的问题。由于
【解决方案3】:

在你的脚本中试试这个:

$("#YourElement").html(htmlData);

我这样做是在我的餐桌茶点中。

【讨论】:

    【解决方案4】:

    尝试每次清空您的 innerHtml。 就像这样:

    Element.innerHtml="";

    【讨论】:

      猜你喜欢
      • 2011-12-23
      • 2012-09-17
      • 1970-01-01
      • 1970-01-01
      • 2018-04-14
      • 1970-01-01
      • 2015-10-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多