Вопрос по javascript, html, ajax – Включение обновления только для определенных элементов HTML

7

Я хотел бы знать, как я могу обновить только определенный элемент на моем веб-сайте, а не всю веб-страницу? Элемент, о котором я говорю, - это флэш-приложение, которое загружается довольно медленно и может испытывать тайм-ауты соединения. Я хочу, чтобы пользователь мог обновлять только этот элемент / приложение-фальш. Как я могу это сделать? Ниже у меня есть функция Ajax, которая обновляет элемент HTML, но не уверена, как применить его к моей ситуации.

<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>
да, я могу положить его в iFrame ... в настоящее время он находится в теге объекта Dexter Schneider
почему бы не заставить флешку обновлять содержимое в ней? вместо того, чтобы AJAX снова и снова загружать SWF в DOM Joseph
Как я уже сказал, я в основном хочу, чтобы пользователь мог обновлять только флэш-объект по запросу / клике вместо повторной загрузки всей страницы. Dexter Schneider
Не могли бы вы положить его в iFrame? Я думаю, что установка location.href для iFrame приведет к его обновлению. Mikey G
Хороший вопрос, но у меня нет контроля над флэш-файлом. Это сложное приложение, разработанное кем-то другим. Если я вас неправильно понимаю, пожалуйста, исправьте меня Dexter Schneider

Ваш Ответ

3   ответа
0

Element.innerHtml="";

1

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: как именно это работает, оно автоматически активируется или может быть запрошено / активировано пользователем? Dexter Schneider
Привет, Декстер. Если видите, есть ссылка "Обновить iframe". Если пользователь щелкнет это, он обновит iFrame. Так что это требует активации / вмешательства пользователя.
15

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>

Надеюсь, что это работает. Дай мне знать

Похожие вопросы