mirror of
https://github.com/xroche/httrack.git
synced 2026-07-28 11:32:48 +03:00
* WebHTTrack's mirror links are dead file:// URLs The GUI is served from http://127.0.0.1:PORT/, and browsers refuse to navigate from an http: page to a file: URL, so the "browse the mirror" links in finished.html and file.html did nothing when clicked. They now point at the server's own /website/ route, which already serves the project directory. The desktop entry's browse mode still works, because there the shell hands the file: URL to the browser instead of navigating from a page. The per-project picker in file.html goes too: /website/ is bound to the running project, and reaching the other projects over HTTP would mean serving the whole mirror tree from the control origin. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Signed-off-by: Xavier Roche <roche@httrack.com> * finished.html: link the served mirror, not a dead file:// URL The page is served over http:, so its file:// link is a cross-scheme navigation that Chrome and Firefox refuse. Nothing happened on click. The mirror is already reachable at /website/, which the two list entries just below were using all along. file.html keeps its file:// links. It is the fresh-session entry point for sites mirrored earlier, and /website/ is bound to one project, so pointing it there would trade a dead link for a 404. Serving an arbitrary past project needs a route that does not exist yet. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Signed-off-by: Xavier Roche <roche@httrack.com> * tests: tighten the browse-link assertion and trim its comments The runtime check for href="/website/index.html" also matched the list entry below the anchor, so it passed on the unfixed page; match the anchor by its mirror-path label instead. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Signed-off-by: Xavier Roche <roche@httrack.com> --------- Signed-off-by: Xavier Roche <roche@httrack.com> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
154 lines
4.1 KiB
HTML
154 lines
4.1 KiB
HTML
<html xmlns="http://www.w3.org/1999/xhtml" lang="${LANGUAGE_ISO}">
|
|
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=${LANGUAGE_CHARSET}" />
|
|
<meta name="description" content="${LANG_METADESC}" />
|
|
<meta name="keywords" content="${LANG_METAKEYW}" />
|
|
<title>'${projname}' - HTTrack Website Copier</title>
|
|
|
|
<link rel="stylesheet" type="text/css" media="screen" href="style.css">
|
|
<script type="text/javascript" src="ping.js" defer></script>
|
|
|
|
<script language="javascript">
|
|
<!--
|
|
function do_load() {
|
|
window.status=' ';
|
|
}
|
|
function do_unload() {
|
|
}
|
|
function info(str) {
|
|
window.status = str;
|
|
}
|
|
// -->
|
|
</script>
|
|
|
|
</head>
|
|
<body onLoad="do_load();" onUnload="do_unload();">
|
|
|
|
<table width="76%" border="0" align="center" cellspacing="0" cellpadding="0" class="tableWidth">
|
|
<tr>
|
|
<td><img src="images/header_title_4.gif" width="400" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td>
|
|
</tr>
|
|
</table>
|
|
<table width="76%" border="0" align="center" cellspacing="0" cellpadding="3" class="tableWidth">
|
|
<tr>
|
|
<td width="90%" id="subTitle">${LANG_OSFWB}</td>
|
|
<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"
|
|
title='${html:LANG_O1}' onMouseOver="info('${html:LANG_O1}'); return true" onMouseOut="info(' '); return true"
|
|
style="color:#FFFFFF"
|
|
>
|
|
${LANG_O1}
|
|
</a>
|
|
</td>
|
|
${/* show help only if available */}
|
|
${do:if-file-exists:html/index.html}
|
|
<td id="subTitle">|</td>
|
|
<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"
|
|
title='${html:LANG_TIPHELP}' onMouseOver="info('${html:LANG_TIPHELP}'); return true" onMouseOut="info(' '); return true"
|
|
style="color:#FFFFFF"
|
|
>
|
|
${LANG_O5}
|
|
</a>
|
|
</td>
|
|
${do:end-if}
|
|
</tr>
|
|
</table>
|
|
<table width="76%" border="0" align="center" cellspacing="0" cellpadding="0" class="tableWidth">
|
|
<tr class="blak">
|
|
<td>
|
|
<table width="100%" border="0" align="center" cellspacing="1" cellpadding="0">
|
|
<tr>
|
|
<td colspan="6">
|
|
<table width="100%" border="0" align="center" cellspacing="0" cellpadding="10">
|
|
<tr>
|
|
<td id="pageContent">
|
|
<!-- ==================== End prologue ==================== -->
|
|
|
|
<table border="0" width="100%">
|
|
<tr><td width="90%">
|
|
<h2 align="center"><em>${LANG_F18b}</em></h2>
|
|
</td><td>
|
|
<a href="/step3.html" target="_blank">${LANG_TIPHELP}</a>
|
|
</td></tr></table>
|
|
|
|
<br>
|
|
|
|
<pre>
|
|
|
|
${do:if-not-empty:commandReturn}
|
|
${LANG_F19}
|
|
<font color="red">
|
|
${commandReturnMsg}
|
|
</font>
|
|
${LANG_F20}
|
|
<font color="blue">
|
|
httrack ${commandReturnCmdl}
|
|
</font>
|
|
${LANG_F21}
|
|
${do:end-if}
|
|
|
|
${do:if-empty:commandReturn}
|
|
${LANG_F22}
|
|
${do:end-if}
|
|
</pre>
|
|
|
|
${LANG_G8} :
|
|
${/* an http: page cannot navigate to file:, so the mirror is reached through the server */}
|
|
<a href="/website/index.html" target="_new">
|
|
${path}/${projname}
|
|
</a></li>
|
|
<ul>
|
|
<li><a href="/website/index.html" target="_new">${LANG_D8}</a></li>
|
|
<li><a href="/website/hts-log.txt" target="_new">${LANG_D4}</a></li>
|
|
</ul>
|
|
|
|
<form method="POST" action="exit.html" name="form">
|
|
<input type="hidden" name="sid" value="${sid}">
|
|
<input type="hidden" name="command" value="quit">
|
|
|
|
<table border="0" width="100%">
|
|
<tr><td>
|
|
|
|
</td></tr><tr><td>
|
|
|
|
</td></tr><tr><td>
|
|
|
|
<table width="100%" border="0"><tr><td align="left">
|
|
|
|
</td><td align="right">
|
|
<input type="submit" value=" ${LANG_QUIT} "
|
|
onClick="form.submit()">
|
|
</td></tr></table>
|
|
|
|
</td></tr>
|
|
</table>
|
|
|
|
</form>
|
|
|
|
<!-- ==================== Start epilogue ==================== -->
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<table width="76%" border="0" align="center" valign="bottom" cellspacing="0" cellpadding="0">
|
|
<tr>
|
|
<td id="footer"><small><small>© 1998-2026 Xavier Roche & other contributors - Web Design: Leto Kauler.</small></small></td>
|
|
</tr>
|
|
</table>
|
|
|
|
</body>
|
|
|
|
</html>
|
|
|
|
|