|
|
|
| Недавно передо мной встала задача сделать кнопку на сайте, которая обновляет (перезагружает) страницу. При этом, пользователь не должен этого заметить.
Это вообще, реально? | |
|
|
|
|
|
|
|
для: sasha12342
(30.03.2014 в 18:21)
| | Да, конечно, можно воспользоваться AJAX-загрузкой, когда вы при помощи JavaScript посылаете запрос на сервер, загружаете часть страницы и при помощи же JavaScript изменяете часть страницы, полученной информацией. Так как большая часть страницы не подвергается изменениям, вы можете изменить только ту часть, которую нужно изменить (текст, изображение и т.п.). | |
|
|
|
|
|
|
|
для: cheops
(30.03.2014 в 18:30)
| | Спасибо за ответ, но мне нужно, именно перезагрузить страницу (всю). ajax не подойдет, потому что мне нужно обновление переменной php. | |
|
|
|
|
|
|
|
для: sasha12342
(30.03.2014 в 18:39)
| | Вы можете поместить всю видимую часть страницы в блок, который обновлять.
AJAX в фоновом режиме обращается на сервер, где и находится переменная PHP, поэтому не очень понятно, почему он не подходит? | |
|
|
|
|
|
|
|
для: cheops
(30.03.2014 в 19:19)
| | У меня на сайте предусмотрено видео-общение (как в чате рулетка), окно с видео я не могу вызывать из другого файла, то есть оно подключается инклудом, но аяксом вывести не получается.
Вот код видео-окна в котором необходимо обновлять переменную "$pol_id" по нажатию кнопки:
<script language="javascript">AC_FL_RunContent = 0;</script>
<script src="AC_RunActiveContent.js" language="javascript"></script>
<script language="javascript">
if (AC_FL_RunContent == 0) {
alert("This page requires AC_RunActiveContent.js.");
} else {
AC_FL_RunContent(
'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0',
'src', 'Subscriber',
'quality', 'high',
'pluginspage', 'http://www.macromedia.com/go/getflashplayer',
'scale', 'showall',
'wmode', 'window',
'id', 'Subscriber',
'name', 'Subscriber',
'allowFullScreen', 'true',
'allowScriptAccess','sameDomain',
'movie', 'Subscriber',
'flashvars', 'idn=<?php echo $pol_id;?>',
'salign', ''
);
}
</script>
<noscript>
<object classid="clsid:d24cdb8e-ae4d-11cf-96b8-444245554723900" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" id="Subscriber" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="flashvars" value="idn=<?php echo $pol_id;?>" />
<param name="allowFullScreen" value="true" />
<param name="movie" value="Subscriber.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#000" />
<embed src="Subscriber.swf" flashvars="idn=<?php echo $pol_id;?>" quality="high" name="Subscriber" allowScriptAccess="sameDomain" allowFullScreen="true" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
</noscript>
| Когда я пытался вывести это окно через аякс в индексном файле, то там только это окно и выводилось, больше ничего (пустая страница).
Плюс ко всему, на главной они могут переписываться (чат), дарить разные подарки (зависит от пользователя), опять нужны переменные... | |
|
|
|
|
|
|
|
для: sasha12342
(30.03.2014 в 19:41)
| | Flash прекрасно взаимодействует с JS, собственно, AC_FL_RunContent() - это и есть JS-функция, которую никто не запрещает вызывать по-новой с нужным значением flashvars, сервер и переменная $pol_id вам тут вообще не зачем (достаточно в JS-массиве сформировать заранее нужные значения и выбирать в случайном порядке, на худой конец, можно и у сервера запросить по AJAX). | |
|
|
|
|
|
|
|
для: cheops
(30.03.2014 в 20:24)
| | Попробовал сделать так:
<script language="javascript">
function Ajax(){
var request;
if(window.XMLHttpRequest){
request = new XMLHttpRequest();
} else if(window.ActiveXObject){
request = new ActiveXObject("Microsoft.XMLHTTP");
} else {
return;
}
request.onreadystatechange = function(){
switch (request.readyState) {
case 4:{
if(request.status==200){
document.getElementById("printResult").innerHTML = "idn="+request.responseText;
}else if(request.status==404){
alert("Ошибка: запрашиваемый скрипт не найден!");
}
else alert("Ошибка: сервер вернул статус: "+ request.status);
break
}
}
}
request.open("POST",'ajax.php', true);
request.setRequestHeader("Content-type","application/x-www-form-urlencoded");
request.send("param1=111");
}
function print_console(text){
document.getElementById("printResult").innerHTML;
}
if (AC_FL_RunContent == 0) {
alert("This page requires AC_RunActiveContent.js.");
} else {
AC_FL_RunContent(
'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0',
'src', 'Subscriber',
'quality', 'high',
'pluginspage', 'http://www.macromedia.com/go/getflashplayer',
'scale', 'showall',
'wmode', 'window',
'devicefont', 'false',
'id', 'Subscriber',
'name', 'Subscriber',
'allowFullScreen', 'true',
'allowScriptAccess','sameDomain',
'movie', 'Subscriber',
'flashvars', 'idn='+request.responseText,
'salign', ''
);
}
</script>
<param name="flashvars" id='printResult' value="idn=<?php echo $pol_id;?>" />
<embed src="Subscriber.swf" flashvars="idn=<?php echo $pol_id;?>" quality="high" name="Subscriber" allowScriptAccess="sameDomain"...
|
Но ничего не получается, param и embed пустые... | |
|
|
|
|
|
|
|
для: sasha12342
(31.03.2014 в 00:32)
| | Если я правильно понял, то вышеописанное на аяксе не реализовать?
Вопрос с перезагрузкой остается открытым... Походу это единственное решение... | |
|
|
|
|
|
|
|
для: sasha12342
(02.04.2014 в 00:21)
| | А зачем вы используете innerHTML елси вам надо вставить результат в
| |
|
|
|
|
|
|
|
для: KPETuH
(02.04.2014 в 10:39)
| | И в value вставлял, и менял значение непосредственно в "embed" но это, абсолютно ничего не дает.
Окно собеседника от этого не меняется... Чтобы запустилось другое видео, по-любому нужно перезагрузить страницу... | |
|
|
|
|