Причина, по которой я не хочу использовать ajax для этого, заключается в том, что часть, которую я хочу обновить, на самом деле является плагином комментариев, реализованным другими. Я просто поместил фрагмент сценария, который они предоставили, в мой HTML-код, и он показывает часть комментариев под моими статьями. Так как это не комментирование в реальном времени, я хочу добавить кнопку обновления рядом с ним, чтобы пользователи могли просто обновить комментирующую часть, чтобы получить последние комментарии без необходимости перезагрузки всей страницы.

Поэтому я думаю, что, возможно, iframe - вариант для меня. Но проблема в том, что мне нужно указать атрибут src iframe. Я не знаю, какое значение я должен использовать, потому что все, что у меня есть, это просто фрагмент скрипта. Может кто-нибудь дать мне какое-нибудь представление об этом?

Кстати, фрагмент кода выглядит следующим образом:

<div id="uyan_frame"></div>
<script type="text/javascript" id="UYScript" src="http://v1.uyan.cc/js/iframe.js?UYUserId=1674366" async=""></script>
4
chaonextdoor 26 Янв 2013 в 01:31

3 ответа

Лучший ответ

Вы можете поместить фрагмент выше в 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, который вы можете обновить с помощью javascript.

Тем не менее, если вы можете что-то сделать, это не значит, что вы должны что-то делать. Это действительно хакерский способ делать то, что вы пытаетесь сделать. Несколько альтернативных вариантов:

  1. Поймите, что делает используемый вами скрипт, и работайте с ним. Судя по названию скрипта и элементу div во фрагменте, возможно, создается iframe для начинать с. Если это так, то почему бы просто не выяснить, как называется этот iFrame, с помощью отладки браузера и обновить его вручную или изменить скрипт для этого?

  2. Используйте живую платформу обновления . Это может быть невозможно для вас, я не знаю ваших ограничений, но существует множество отличных платформ для комментирования, которые выполняют живые обновления. , Например, на ум приходит Disqus. Другими примерами являются комментарии в Facebook или вы можете вставить ссылку на внешний сайт, например ветка

  3. Использовать Ajax - мне немного неясно, пишете ли вы этот сценарий или сценарий стороннего производителя. Если это ваш сценарий, тогда используйте общепринятые методы для выполнения этого типа работы, если только у вас нет действительно веской причины. Вы получите лучшую поддержку от других, вы получите более общеприменимый опыт, и по большей части лучшие практики получают такое название по определенной причине. Люди используют методы «ajax» для обновления страниц в реальном времени, потому что это эффективно и полезно. Фреймы стали намного менее распространенными в Интернете, потому что они неуклюжи и затрудняют взаимодействие различных частей страницы. Если у вас нет веских причин не использовать обычную практику, обычно это лучший выбор.

2
Ben McCormick 25 Янв 2013 в 23:44

Вы могли сделать это:

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

Снова установите значение iframe src в его значение, это приведет к обновлению фрейма и будет работать с междоменными фреймами

0
machour 25 Янв 2013 в 21:36

Просто создайте HTML-страницу со сценарием, о котором вы говорили, и используйте этот файл в атрибуте iframe src.

3
Jens Peters 25 Янв 2013 в 21:33