Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/21: Рейтинг темы: голосов - 21, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 16.09.2015
Сообщений: 6

Автоматическое обновление стороннего сайта (по таймеру)

23.09.2015, 09:28. Показов 4295. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Вопрос заключается в следующем, есть код для обновления стороннего сайта, возможно было бы обойтись без строчки <iframe....>, так как необходимо само обновление страницы, а не вывод ее куда либо?
JavaScript
1
2
3
4
5
<script>
setInterval(function(){
    document.getElementById("myiframe").src="http://сайт.ru";
},60000);
</script>
HTML5
1
<iframe id="myiframe" width=100% height=100%></iframe>
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.09.2015, 09:28
Ответы с готовыми решениями:

Автоматическое обновление документа по таймеру
есть тaблицa, кaждaя ячеикa тaблицы этo фaил php &lt;table&gt; &lt;tr&gt;&lt;td&gt;img.php&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;yy.php&lt;/td&gt;&lt;/tr&gt; &lt;/table&gt; ...

Автоматическое выполнение скрипта по таймеру на хостинге
Здравствуйте! Задачка такая - есть код, который нужно выполнять каждые 60 минут. Как это можно сделать? Заранее большое...

Автоматическое закрытие текущей формы по таймеру
Только начал изучать C#, помогите пожалуйста разобраться с таймером, уверен для знающего человека это пустяк. Как реализовать чтобы после...

11
Юзер с абсолютным слухом
 Аватар для Опан
709 / 489 / 195
Регистрация: 17.12.2010
Сообщений: 1,428
23.09.2015, 19:50
Просто замените width=100% height=100% на style="display:none" и тогда сторонний сайт на странице отображаться не будет, а его посещаловка и дальше будет хвунциклирить:
HTML5
1
<iframe id="myiframe"style="display:none"></iframe>
0
0 / 0 / 0
Регистрация: 16.09.2015
Сообщений: 6
24.09.2015, 00:24  [ТС]
Опан, Спасибо)
0
25.09.2015, 00:32

Не по теме:

опаньки, опять накручивальщики
не помню точно как называется, но это не хорошо

0
0 / 0 / 0
Регистрация: 16.09.2015
Сообщений: 6
25.09.2015, 10:11  [ТС]
BANO, не, все прилично, нужно картинку с камеры обновлять)
0
0 / 0 / 0
Регистрация: 10.11.2017
Сообщений: 4
10.11.2017, 20:57
Здравствуйте. За основу взят данный скрипт

JavaScript
1
2
3
4
5
<script>
setInterval(function(){
 document.getElementById("myiframe").src="http://сайт.ru";
},60000);
</script>
JavaScript
1
<iframe id="myiframe" width=100% height=100%></iframe>
Вместо одного сайта http://сайт.ru пытаюсь подгрузить туда разные страницы одного сайта
http://сайт.ru/1.html
http://сайт.ru/2.html
http://сайт.ru/3.html
и т.д.

Делаю это так.

JavaScript
1
2
3
4
5
<script>
setInterval(function(){
 document.getElementById("myiframe").src="<? include "randtext.php"?>";
},60000);
</script>
JavaScript
1
<iframe id="myiframe" width=100% height=100%></iframe>
randtext.php содержит

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?
include "config.php";
 mt_srand ((float) microtime() * 1000000);
 $fp = file($config["datafile"]);
 $count = count($fp) - 1;
 $text = $fp[mt_rand(0,$count)];
 
 if (empty($type)) 
   {
    echo $text;
   }
 else 
   {
    $fp = file($type . ".inc.php");
    for($i = 0 ; $i < count($fp); $i++)
      {
        $fp[$i] = str_replace("<!!text!!>",$text,$fp[$i]);
        echo $fp[$i];
        flush();
      }
   }
?>
config.php содержит

PHP
1
2
3
4
5
6
<?
// Setting //
 
$config["datafile"] = "./data.txt";
 
?>
и data.txt содержит собственно адреса ссылок вида
http://сайт.ru/1.html
http://сайт.ru/2.html
http://сайт.ru/3.html

Всё бы ничего, это связка в принципе работает, разные страницы подставляются, но через <iframe id="myiframe" width=100% height=100%></iframe> не выводится (не отображается)

Всё дело в том, что когда это происходит то в этой строке document.getElementById("myiframe").src= "http://сайт.ru";
последние символы "; переходят на строку ниже, по этому и не отображается.

В этом всём деле я полный 0.

Просьба, подскажите пожалуйста, как заставить эту связку работать нормально.
0
Юзер с абсолютным слухом
 Аватар для Опан
709 / 489 / 195
Регистрация: 17.12.2010
Сообщений: 1,428
11.11.2017, 01:22
Здравствуйте. Хочу предложить более простой вариант, который работает так же само, но обходится без PHP:
JavaScript
1
2
3
4
5
var count = 1;
setInterval(function(){
myiframe.src="http://сайт.ru/"+count+".html";
count++;
},60000);
А о такой проблеме, связанной с переносом части строки кода на новую строку в редакторе слышу впервые. На всякий случай 3-ю строку JS-кода заменил более короткой строкой с таким же смыслом. Если что, ещё попробуйте в редакторе кода отключить перенос строк: главное меню-вид-перенос строк.

Добавлено через 15 минут
Последний код был рассчитан на последовательное подключение страниц 1.html, 2.html, 3.html и т. д. Если нужен случайный выбор, то можно сделать так: допустим, если есть 5 страниц:
JavaScript
1
2
3
4
setInterval(function(){
var count=1+Math.floor(Math.random()*5);
myiframe.src="http://сайт.ru/"+count+".html";
},60000);
Добавлено через 39 минут
Да, я сразу не заметил, randtext.php вызывается только один раз по ходу загрузки страницы, и в iframe периодически передаётся один и тот же результат его работы. Т. е., myiframe.src будет случайное, но через каждую минуту одно и то же. Для периодического вызова одного и того же PHP-скрипта из JS не обойтись без технологии ajax.
1
0 / 0 / 0
Регистрация: 10.11.2017
Сообщений: 4
11.11.2017, 01:49
Благодарю Опан. Всё работает! Моей радости нет придела )))

Добавлено через 5 минут
JS это конечно сила

А что если ссылки сайта будут иметь вид http://сайт.ru/article/537/какое то название статьи на кирилице
Где 537 это id статьи, естественно он разный

Без html в конце

В этом случае конструкция на php которую я привёл более универсальна, только "; переносятся на другую строку.

Варианты с редакторами все перепробовал, не помогло

Добавлено через 13 минут
HTML5
1
2
3
4
5
6
<script>
setInterval(function(){
 document.getElementById("myiframe").src="http://сайт.ru/article/41/какое то название статьи на кирилице
";
},60000);
</script>
так выглядит код после отработки и злополучные символы "; переходят на другую строку.
0
Юзер с абсолютным слухом
 Аватар для Опан
709 / 489 / 195
Регистрация: 17.12.2010
Сообщений: 1,428
11.11.2017, 20:07
Цитата Сообщение от OlegNikolaev Посмотреть сообщение
В этом случае конструкция на php которую я привёл более универсальна
На JS можно аналогичную конструкцию сделать так:
JavaScript
1
2
3
4
5
6
7
8
9
10
var links = [];
links[0] = "537/статья";
links[1] = "126/одна_статья";
links[2] = "357/ещё_статья";
links[3] = "555/ещё_одна_статья";
links[4] = "222/просто_статья";
setInterval(function(){
    var count = Math.floor(Math.random() * 5);
    myiframe.src = "http://сайт.ru/article/" + links[count];
},60000);
1
0 / 0 / 0
Регистрация: 10.11.2017
Сообщений: 4
11.11.2017, 20:24
И ещё раз Благодарю.

А можно с помощью JS эти ссылки как то брать из файла .txt?

Просто этих ссылок может быть несколько десятков, а то и сотен.
0
Юзер с абсолютным слухом
 Аватар для Опан
709 / 489 / 195
Регистрация: 17.12.2010
Сообщений: 1,428
12.11.2017, 01:19
Да, можно. Сейчас напишу, как.

Не по теме:

А пока что хочу сказать, почему переносятся "; - PHP-функция file() возвращает массив, в каждой ячейке которого находится строка из файла, но заканчивается содержимое каждой ячейки (кроме последней) так же, как и строка в файле - кодами переноса строки \r\n. Чтобы их убрать, в файле randtext.php после 9 строки вставьте такую строку:

PHP
1
$text = str_replace(array("\r", "\n"), "", $text);



Добавлено через 4 часа 2 минуты
Вот как можно с помощью JS эти ссылки брать из файла .txt:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<script>
function file_get_contents(url){
    // +   original by: Legaev Andrey
    var req = null;
    try { req = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {
        try { req = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {
            try { req = new XMLHttpRequest(); } catch(e) {}
        }
    }
    if (req == null) throw new Error('XMLHttpRequest not supported');
    req.open("GET", url, false);
    req.send(null);
    return req.responseText;
}
var links = file_get_contents("data.txt").split("\r\n");
setInterval(function(){
    var count = Math.floor(Math.random() * 5);
    myiframe.src = "http://сайт.ru/article/" + links[count];
}, 60000);
</script>
1
0 / 0 / 0
Регистрация: 10.11.2017
Сообщений: 4
12.11.2017, 01:54
ОГРОМНОЕ человеческое спасибо. Все варианты работают!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.11.2017, 01:54
Помогаю со студенческими работами здесь

Автоматическое, периодическое добавление контента по таймеру php+ajax
Здравствуйте. Возможно уже заезженный вопрос, но ответа пока не нашел. Сайт развлекательной тематики. Хочу реализовать таймер,...

Обновление текста по таймеру
Прошу больно ногами не бить, с флешем работают первый день, вернее первые 2 часа. Встала задачка сделать информационное табло в холле...

Обновление текста по таймеру
Что нужно: Раз в секунду идёт пересчёт данных внутри приложения и эти обновлённые данные выводятся на экран. Что сделано: ...

Обновление listView по таймеру
Здравствуйте. Вопрос вроде бы очень частый, но ничего годного пока не нашел и не придумал. Есть класс, в нем статический лист, который...

WMI обновление загрузки ЦП по таймеру
Я пытался сделать обновление загрузки ЦП по таймеру, но у меня пустое поле вместо значения. Скажите кто знает как можно еще сделать?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru