diff options
author | Xavier Roche <xroche@users.noreply.github.com> | 2014-10-15 19:17:29 +0000 |
---|---|---|
committer | Xavier Roche <xroche@users.noreply.github.com> | 2014-10-15 19:17:29 +0000 |
commit | 9b5c6cf86ed8dbf749bc2e401d4f87d340b6413d (patch) | |
tree | 38e035f0b797edeb5bdbc708681eacedeef53887 /html/server/refresh.html | |
parent | cce112d40a6e36b2c437418e84c57490818603cb (diff) |
Fixed webhttrack incompatibility with Chrome
* closes:#53
Also fixed HTML-escaping issues inside webhttrack
Rationale: The webhttrack script made the wrong assumption that once the "browse" command returned, it meant the user killed the navigation window, and it had to kill the server itself. However, modern browsers tend to "attach" to an existing session (creating a new tab, for example, within an existing window), causing the browsing command to return immediately, thus causing the server to be killed immediately by the webhttrack script. I have rewritten the logic behind, and now the server is able to kill himself if the parent script dies, AND if the browsing client did not make any activity for two minutes. The "activity" can be any browser/refreshed page, or the internal "ping" iframe (which pings the server every 30 seconds). With this model, we *should* be compatible with old browsers, and modern ones.
Diffstat (limited to 'html/server/refresh.html')
-rwxr-xr-x | html/server/refresh.html | 191 |
1 files changed, 62 insertions, 129 deletions
diff --git a/html/server/refresh.html b/html/server/refresh.html index ca840a6..3e59ab9 100755 --- a/html/server/refresh.html +++ b/html/server/refresh.html @@ -7,122 +7,55 @@ <META http-equiv="refresh" content="30; URL=finished.html"> <title>'${projname}' - HTTrack Website Copier</title> - <style type="text/css"> - <!-- + <link rel="stylesheet" type="text/css" media="screen" href="style.css"> + <script type="text/javascript" src="ping.js" defer></script> -body { - margin: 0; padding: 0; margin-bottom: 15px; margin-top: 8px; - background: #77b; +<script language="javascript"> +<!-- +var freeze=0; +setTimeout(do_refresh, 1000); +function do_load() { + window.status=' '; + enable_timer(); } -body, td { - font: 14px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; - } - -#subTitle { - background: #000; color: #fff; padding: 4px; font-weight: bold; +function disable_timer() { + if (freeze == 0) { + freeze=1; } - -#siteNavigation a, #siteNavigation .current { - font-weight: bold; color: #448; - } -#siteNavigation a:link { text-decoration: none; } -#siteNavigation a:visited { text-decoration: none; } - -#siteNavigation .current { background-color: #ccd; } - -#siteNavigation a:hover { text-decoration: none; background-color: #fff; color: #000; } -#siteNavigation a:active { text-decoration: none; background-color: #ccc; } - - -a:link { text-decoration: underline; color: #00f; } -a:visited { text-decoration: underline; color: #000; } -a:hover { text-decoration: underline; color: #c00; } -a:active { text-decoration: underline; } - -#pageContent { - clear: both; - border-bottom: 6px solid #000; - padding: 10px; padding-top: 20px; - line-height: 1.65em; - background-image: url(images/bg_rings.gif); - background-repeat: no-repeat; - background-position: top right; +} +function lock_timer() { + freeze=2; +} +function enable_timer() { + if (freeze == 1) { + freeze=0; } - -#pageContent, #siteNavigation { - background-color: #ccd; +} +function unlock_timer() { + freeze=0; +} +function do_confirm(str) { + lock_timer(); + ret=confirm(str); + if (!ret) { + unlock_timer(); } - - -.imgLeft { float: left; margin-right: 10px; margin-bottom: 10px; } -.imgRight { float: right; margin-left: 10px; margin-bottom: 10px; } - -hr { height: 1px; color: #000; background-color: #000; margin-bottom: 15px; } - -h1 { margin: 0; font-weight: bold; font-size: 2em; } -h2 { margin: 0; font-weight: bold; font-size: 1.6em; } -h3 { margin: 0; font-weight: bold; font-size: 1.3em; } -h4 { margin: 0; font-weight: bold; font-size: 1.18em; } - -.blak { background-color: #000; } -.hide { display: none; } -.tableWidth { min-width: 400px; } - -.tblRegular { border-collapse: collapse; } -.tblRegular td { padding: 6px; background-image: url(fade.gif); border: 2px solid #99c; } -.tblHeaderColor, .tblHeaderColor td { background: #99c; } -.tblNoBorder td { border: 0; } - - -// --> -</style> - -<script language="javascript"> -<!--
-var freeze=0; -setTimeout(do_refresh, 1000);
-function do_load() { - window.status=' ';
- enable_timer();
-}
-function disable_timer() {
- if (freeze == 0) {
- freeze=1;
- }
+ return ret; } -function lock_timer() {
- freeze=2;
-}
-function enable_timer() {
- if (freeze == 1) {
- freeze=0;
- }
-}
-function unlock_timer() {
- freeze=0;
-}
-function do_confirm(str) {
- lock_timer();
- ret=confirm(str);
- if (!ret) {
- unlock_timer();
- }
- return ret;
-}
function do_unload() { } function info(str) { window.status = str; -}
-function do_refresh() {
- if (!freeze) {
- document.location.reload();
- } else {
- setTimeout(do_refresh, 1000);
- }
} -function no_refresh() {
-}
+function do_refresh() { + if (!freeze) { + document.location.reload(); + } else { + setTimeout(do_refresh, 1000); + } +} +function no_refresh() { +} // --> </script> @@ -140,7 +73,7 @@ function no_refresh() { <td id="subTitle" align="right"> <a href="/server/file.html" target="_blank" onClick="window.open('/server/file.html', 'help', 'toolbar=no, location=no, directories=no, status=yes, menubar=no, scrollbars=yes, resizable=yes, width=640, height=480'); return false" - onMouseOver="info('${LANG_O1}'); return true" onMouseOut="info(' '); return true" + onMouseOver="info('${html:LANG_O1}'); return true" onMouseOut="info(' '); return true" style="color:#FFFFFF" > ${LANG_O1} @@ -152,7 +85,7 @@ ${do:if-file-exists:html/index.html} <td id="subTitle" align="right"> <a href="/index.html" target="_blank" onClick="window.open('/server/help.html', 'help', 'toolbar=no, location=no, directories=no, status=yes, menubar=no, scrollbars=yes, resizable=yes, width=640, height=480'); return false" - onMouseOver="info('${LANG_TIPHELP}'); return true" onMouseOut="info(' '); return true" + onMouseOver="info('${html:LANG_TIPHELP}'); return true" onMouseOut="info(' '); return true" style="color:#FFFFFF" > ${LANG_O5} @@ -198,8 +131,8 @@ ${do:end-if} </tr> </table> -
-<br>
+ +<br> <table border="0" width="100%"> <tr> @@ -210,8 +143,8 @@ ${LANG_H20} ${info.currentjob} </td> </tr> </table> -
-<br>
+ +<br> <form method="POST" action="step4.html" name="form"> <input type="hidden" name="sid" value="${sid}"> @@ -219,20 +152,20 @@ ${LANG_H20} ${info.currentjob} <table border="0" width="100%"> -<tr><td>${info.state[0]}</td><td>${info.name[0]}</td><td>${info.file[0]}</td><td>${info.size[0]}/${info.sizetot[0]}</td><td><input type="submit" value="${LANG_H15}" onClick="form.command.value='cancel-file=${info.url_sav[0]}'; form.submit()" onMouseOver="info('${LANG_H6}'); return true" onMouseOut="info(' '); return true"></td></tr> -<tr><td>${info.state[1]}</td><td>${info.name[1]}</td><td>${info.file[1]}</td><td>${info.size[1]}/${info.sizetot[1]}</td><td><input type="submit" value="${LANG_H15}" onClick="form.command.value='cancel-file=${info.url_sav[1]}'; form.submit()" onMouseOver="info('${LANG_H7}'); return true" onMouseOut="info(' '); return true"></td></tr> -<tr><td>${info.state[2]}</td><td>${info.name[2]}</td><td>${info.file[2]}</td><td>${info.size[2]}/${info.sizetot[2]}</td><td><input type="submit" value="${LANG_H15}" onClick="form.command.value='cancel-file=${info.url_sav[2]}'; form.submit()" onMouseOver="info('${LANG_H7}'); return true" onMouseOut="info(' '); return true"></td></tr> -<tr><td>${info.state[3]}</td><td>${info.name[3]}</td><td>${info.file[3]}</td><td>${info.size[3]}/${info.sizetot[3]}</td><td><input type="submit" value="${LANG_H15}" onClick="form.command.value='cancel-file=${info.url_sav[3]}'; form.submit()" onMouseOver="info('${LANG_H7}'); return true" onMouseOut="info(' '); return true"></td></tr> -<tr><td>${info.state[4]}</td><td>${info.name[4]}</td><td>${info.file[4]}</td><td>${info.size[4]}/${info.sizetot[4]}</td><td><input type="submit" value="${LANG_H15}" onClick="form.command.value='cancel-file=${info.url_sav[4]}'; form.submit()" onMouseOver="info('${LANG_H7}'); return true" onMouseOut="info(' '); return true"></td></tr> -<tr><td>${info.state[5]}</td><td>${info.name[5]}</td><td>${info.file[5]}</td><td>${info.size[5]}/${info.sizetot[5]}</td><td><input type="submit" value="${LANG_H15}" onClick="form.command.value='cancel-file=${info.url_sav[5]}'; form.submit()" onMouseOver="info('${LANG_H7}'); return true" onMouseOut="info(' '); return true"></td></tr> -<tr><td>${info.state[6]}</td><td>${info.name[6]}</td><td>${info.file[6]}</td><td>${info.size[6]}/${info.sizetot[6]}</td><td><input type="submit" value="${LANG_H15}" onClick="form.command.value='cancel-file=${info.url_sav[6]}'; form.submit()" onMouseOver="info('${LANG_H7}'); return true" onMouseOut="info(' '); return true"></td></tr> -<tr><td>${info.state[7]}</td><td>${info.name[7]}</td><td>${info.file[7]}</td><td>${info.size[7]}/${info.sizetot[7]}</td><td><input type="submit" value="${LANG_H15}" onClick="form.command.value='cancel-file=${info.url_sav[7]}'; form.submit()" onMouseOver="info('${LANG_H7}'); return true" onMouseOut="info(' '); return true"></td></tr> -<tr><td>${info.state[8]}</td><td>${info.name[8]}</td><td>${info.file[8]}</td><td>${info.size[8]}/${info.sizetot[8]}</td><td><input type="submit" value="${LANG_H15}" onClick="form.command.value='cancel-file=${info.url_sav[8]}'; form.submit()" onMouseOver="info('${LANG_H7}'); return true" onMouseOut="info(' '); return true"></td></tr> -<tr><td>${info.state[9]}</td><td>${info.name[9]}</td><td>${info.file[9]}</td><td>${info.size[9]}/${info.sizetot[9]}</td><td><input type="submit" value="${LANG_H15}" onClick="form.command.value='cancel-file=${info.url_sav[9]}'; form.submit()" onMouseOver="info('${LANG_H7}'); return true" onMouseOut="info(' '); return true"></td></tr> -<tr><td>${info.state[10]}</td><td>${info.name[10]}</td><td>${info.file[10]}</td><td>${info.size[10]}/${info.sizetot[10]}</td><td><input type="submit" value="${LANG_H15}" onClick="form.command.value='cancel-file=${info.url_sav[10]}'; form.submit()" onMouseOver="info('${LANG_H7}'); return true" onMouseOut="info(' '); return true"></td></tr> -<tr><td>${info.state[11]}</td><td>${info.name[11]}</td><td>${info.file[11]}</td><td>${info.size[11]}/${info.sizetot[11]}</td><td><input type="submit" value="${LANG_H15}" onClick="form.command.value='cancel-file=${info.url_sav[11]}'; form.submit()" onMouseOver="info('${LANG_H7}'); return true" onMouseOut="info(' '); return true"></td></tr> -<tr><td>${info.state[12]}</td><td>${info.name[12]}</td><td>${info.file[12]}</td><td>${info.size[12]}/${info.sizetot[12]}</td><td><input type="submit" value="${LANG_H15}" onClick="form.command.value='cancel-file=${info.url_sav[12]}'; form.submit()" onMouseOver="info('${LANG_H7}'); return true" onMouseOut="info(' '); return true"></td></tr> -<tr><td>${info.state[13]}</td><td>${info.name[13]}</td><td>${info.file[13]}</td><td>${info.size[13]}/${info.sizetot[13]}</td><td><input type="submit" value="${LANG_H15}" onClick="form.command.value='cancel-file=${info.url_sav[13]}'; form.submit()" onMouseOver="info('${LANG_H7}'); return true" onMouseOut="info(' '); return true"></td></tr> +<tr><td>${info.state[0]}</td><td>${info.name[0]}</td><td>${info.file[0]}</td><td>${info.size[0]}/${info.sizetot[0]}</td><td><input type="submit" value="${LANG_H15}" onClick="form.command.value='cancel-file=${info.url_sav[0]}'; form.submit()" onMouseOver="info('${html:LANG_H6}'); return true" onMouseOut="info(' '); return true"></td></tr> +<tr><td>${info.state[1]}</td><td>${info.name[1]}</td><td>${info.file[1]}</td><td>${info.size[1]}/${info.sizetot[1]}</td><td><input type="submit" value="${LANG_H15}" onClick="form.command.value='cancel-file=${info.url_sav[1]}'; form.submit()" onMouseOver="info('${html:LANG_H7}'); return true" onMouseOut="info(' '); return true"></td></tr> +<tr><td>${info.state[2]}</td><td>${info.name[2]}</td><td>${info.file[2]}</td><td>${info.size[2]}/${info.sizetot[2]}</td><td><input type="submit" value="${LANG_H15}" onClick="form.command.value='cancel-file=${info.url_sav[2]}'; form.submit()" onMouseOver="info('${html:LANG_H7}'); return true" onMouseOut="info(' '); return true"></td></tr> +<tr><td>${info.state[3]}</td><td>${info.name[3]}</td><td>${info.file[3]}</td><td>${info.size[3]}/${info.sizetot[3]}</td><td><input type="submit" value="${LANG_H15}" onClick="form.command.value='cancel-file=${info.url_sav[3]}'; form.submit()" onMouseOver="info('${html:LANG_H7}'); return true" onMouseOut="info(' '); return true"></td></tr> +<tr><td>${info.state[4]}</td><td>${info.name[4]}</td><td>${info.file[4]}</td><td>${info.size[4]}/${info.sizetot[4]}</td><td><input type="submit" value="${LANG_H15}" onClick="form.command.value='cancel-file=${info.url_sav[4]}'; form.submit()" onMouseOver="info('${html:LANG_H7}'); return true" onMouseOut="info(' '); return true"></td></tr> +<tr><td>${info.state[5]}</td><td>${info.name[5]}</td><td>${info.file[5]}</td><td>${info.size[5]}/${info.sizetot[5]}</td><td><input type="submit" value="${LANG_H15}" onClick="form.command.value='cancel-file=${info.url_sav[5]}'; form.submit()" onMouseOver="info('${html:LANG_H7}'); return true" onMouseOut="info(' '); return true"></td></tr> +<tr><td>${info.state[6]}</td><td>${info.name[6]}</td><td>${info.file[6]}</td><td>${info.size[6]}/${info.sizetot[6]}</td><td><input type="submit" value="${LANG_H15}" onClick="form.command.value='cancel-file=${info.url_sav[6]}'; form.submit()" onMouseOver="info('${html:LANG_H7}'); return true" onMouseOut="info(' '); return true"></td></tr> +<tr><td>${info.state[7]}</td><td>${info.name[7]}</td><td>${info.file[7]}</td><td>${info.size[7]}/${info.sizetot[7]}</td><td><input type="submit" value="${LANG_H15}" onClick="form.command.value='cancel-file=${info.url_sav[7]}'; form.submit()" onMouseOver="info('${html:LANG_H7}'); return true" onMouseOut="info(' '); return true"></td></tr> +<tr><td>${info.state[8]}</td><td>${info.name[8]}</td><td>${info.file[8]}</td><td>${info.size[8]}/${info.sizetot[8]}</td><td><input type="submit" value="${LANG_H15}" onClick="form.command.value='cancel-file=${info.url_sav[8]}'; form.submit()" onMouseOver="info('${html:LANG_H7}'); return true" onMouseOut="info(' '); return true"></td></tr> +<tr><td>${info.state[9]}</td><td>${info.name[9]}</td><td>${info.file[9]}</td><td>${info.size[9]}/${info.sizetot[9]}</td><td><input type="submit" value="${LANG_H15}" onClick="form.command.value='cancel-file=${info.url_sav[9]}'; form.submit()" onMouseOver="info('${html:LANG_H7}'); return true" onMouseOut="info(' '); return true"></td></tr> +<tr><td>${info.state[10]}</td><td>${info.name[10]}</td><td>${info.file[10]}</td><td>${info.size[10]}/${info.sizetot[10]}</td><td><input type="submit" value="${LANG_H15}" onClick="form.command.value='cancel-file=${info.url_sav[10]}'; form.submit()" onMouseOver="info('${html:LANG_H7}'); return true" onMouseOut="info(' '); return true"></td></tr> +<tr><td>${info.state[11]}</td><td>${info.name[11]}</td><td>${info.file[11]}</td><td>${info.size[11]}/${info.sizetot[11]}</td><td><input type="submit" value="${LANG_H15}" onClick="form.command.value='cancel-file=${info.url_sav[11]}'; form.submit()" onMouseOver="info('${html:LANG_H7}'); return true" onMouseOut="info(' '); return true"></td></tr> +<tr><td>${info.state[12]}</td><td>${info.name[12]}</td><td>${info.file[12]}</td><td>${info.size[12]}/${info.sizetot[12]}</td><td><input type="submit" value="${LANG_H15}" onClick="form.command.value='cancel-file=${info.url_sav[12]}'; form.submit()" onMouseOver="info('${html:LANG_H7}'); return true" onMouseOut="info(' '); return true"></td></tr> +<tr><td>${info.state[13]}</td><td>${info.name[13]}</td><td>${info.file[13]}</td><td>${info.size[13]}/${info.sizetot[13]}</td><td><input type="submit" value="${LANG_H15}" onClick="form.command.value='cancel-file=${info.url_sav[13]}'; form.submit()" onMouseOver="info('${html:LANG_H7}'); return true" onMouseOut="info(' '); return true"></td></tr> </table> @@ -246,10 +179,10 @@ ${LANG_H20} ${info.currentjob} <table width="100%" border="0"><tr><td align="left"> </td><td align="right"> - <input type="submit" value=" ${LANG_V4} "
- onMouseOver="disable_timer(); info('${LANG_D3}'); return true"
- onMouseOut="info(' '); enable_timer(); return true"
- onClick="if (do_confirm('${LANG_G1}')) { form.command.value='cancel'; form.submit(); } return false"
+ <input type="submit" value=" ${LANG_V4} " + onMouseOver="disable_timer(); info('${LANG_D3}'); return true" + onMouseOut="info(' '); enable_timer(); return true" + onClick="if (do_confirm('${LANG_G1}')) { form.command.value='cancel'; form.submit(); } return false" > </td></tr></table> |