在perl脚本创建新网页之后,有类似(goto-char previous-position)
的内容 - 例如,在生成新页面之前,记录用户所在的当前行号并将其存储为变量(即, previous-position
)然后在创建新网页后滚动到同一位置?
编辑:这是我发现Google搜索似乎与之相关的内容。如果页面位置可以记录为变量并传递给脚本并在加载新网页时执行,那么这可能是一个可行的解决方案:
HTML方法是在您要滚动到的位置声明以下内容:
[HTML]<a name="somename">[/HTML]
然后可以通过访问例如页面来自动滚动页面。
[HTML]http://www.yourwebsite.com/yourpage.html#somename[/HTML]
javascript方式是使用scrollTo,从左侧和顶部到您要滚动到的位置的坐标,例如,展开|选择|换行|行号
window.scrollTo(0,100);
要在页面加载时实现此目的,请使用on onload
[HTML]<body onload="window.scrollTo(0,100); ...>[/HTML]
或定义一个函数并调用它。
答案 0 :(得分:1)
perl / html中的解决方案非常简单,每个人都错过了它,并认为它必须是javascript。我们需要做的就是在html中添加一个锚点(例如print '<a name="form_anchor"></a>';
)并将&#form_anchor
放在perl脚本参数的尾端。 [javascript中提供了不同的解决方案,但我更喜欢在现有的perl脚本中包含解决方案。]
注意:可以轻松地为所需的每个链接设置锚点,以便在单击链接时,将相应的参数传递给perl脚本。
在某些时候,我会重新审视这个答案并将其修改/编辑成一个更简单的例子 - 然而,它是深夜的,下面列出的剧本完全按照我的希望工作。
#!/usr/bin/perl
use CGI qw(:standard);
# ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
# yasnippet
my $yasnippet_dir = '/home/lawlist/.0.data/.0.emacs/.0.snippets/lawlist-tex-mode';
my $yasnippet_query = new CGI;
my $selected_file_yasnippet = $yasnippet_query->param('selected-file-yasnippet');
my $yasnippet_selected_file = $yasnippet_dir . "/" . $selected_file_yasnippet;
# ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
# forms
my $form_dir = '/home/lawlist/.0.data/forms';
my $form_query = new CGI;
my $selected_file_form = $form_query->param('selected-file-form');
my $form_selected_file = $form_dir . "/" . $selected_file_form;
# ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
# header
print "Content-type: text/html\n\n";
open(FILE,'/home/lawlist/www/header.include.shtml') and print <FILE>;
# ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
# yasnippet
print <<HTML;
<table bgcolor="#990066" width="100%" cellspacing=0 cellpadding=6 border=0>
<tr>
<td>
<table width="100%" bgcolor="#FFFFCC" cellspacing=0 cellpadding=10 border=0>
<tr>
<td>
<table width="100%" bgcolor="#000000" cellpadding=2>
<tr>
<td align=center>
<table width="100%" border=0 cellpadding=0 cellspacing=0>
<tr>
<td bgcolor="#990066" HEIGHT=25 align=center><font face="verdana,arial,helvetica" COLOR="#FFFFFF" size=3><b>Yasnippet -- Code Snippets</b></font></td>
</tr>
</table>
</td>
</tr>
</table>
<br>
<table width="100%" border=0 cellspacing=0 cellpadding=2>
<tr>
<td rowspan="1" width="25%"><font face="verdana,arial,helvetica" color="#000000" size=3>
HTML
opendir(DIR, $yasnippet_dir) or die $!;
while (my $yasnippet_selected_file = readdir(DIR)) {
next if ($yasnippet_selected_file =~ m/^\.|exclude-filename\.txt/);
next unless (-f "$yasnippet_dir/$yasnippet_selected_file");
next unless ($yasnippet_selected_file =~ m/\.txt|.el|.yasnippet$/);
print '<a href="/cgi-bin/code-snippet.cgi?selected-file-yasnippet=' . $yasnippet_selected_file . '">' . $yasnippet_selected_file . "</a>" . "<br>\n<br>" . "\n\n"; }
closedir(DIR);
if ($selected_file_yasnippet) {
open (DATA, $yasnippet_selected_file) or return $self->print_json_error($self->language('ERR_CANNOT_OPEN', $yasnippet_selected_file->{selected-file-yasnippet}, $!));
read (DATA, my $yasnippet_selected_file, -s DATA);
close DATA;
print '</td><td rowspan="1" width="75%"><font face="verdana,arial,helvetica" color="#000000" size=3>';
print '<pre class="brush: lisp">' . "\n\n" . $yasnippet_selected_file . "\n" . '</pre>';
print "\n\n<br>\n";
close FILE; }
print <<HTML;
</font>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
<!-- end of cream color table -->
<!-- end of red border table -->
<hr COLOR="#CCCCCC" size=1 NOSHADE>
HTML
# ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
# forms
print <<HTML;
<table bgcolor="#990066" width="100%" cellspacing=0 cellpadding=6 border=0>
<tr>
<td>
<table width="100%" bgcolor="#FFFFCC" cellspacing=0 cellpadding=10 border=0>
<tr>
<td>
<table width="100%" bgcolor="#000000" cellpadding=2>
<tr>
<td align=center>
<table width="100%" border=0 cellpadding=0 cellspacing=0>
<tr>
<td bgcolor="#990066" HEIGHT=25 align=center><font face="verdana,arial,helvetica" COLOR="#FFFFFF" size=3><b>Forms -- Code Snippets</b></font></td>
</tr>
</table>
</td>
</tr>
</table>
<br>
<table width="100%" border=0 cellspacing=0 cellpadding=2>
<tr>
<td rowspan="1" width="25%"><font face="verdana,arial,helvetica" color="#000000" size=3>
HTML
opendir(DIR, $form_dir) or die $!;
while (my $form_selected_file = readdir(DIR)) {
next if ($form_selected_file =~ m/^\.|exclude-filename\.txt/);
next unless (-f "$form_dir/$form_selected_file");
next unless ($form_selected_file =~ m/\.txt|.el|.yasnippet$/);
print '<a href="/cgi-bin/code-snippet.cgi?selected-file-form=' . $form_selected_file . '&#form_anchor' . '">' . $form_selected_file . "</a>" . "<br>\n<br>" . "\n\n"; }
closedir(DIR);
if ($selected_file_form) {
open (DATA, $form_selected_file) or return $self->print_json_error($self->language('ERR_CANNOT_OPEN', $form_selected_file->{selected-file-form}, $!));
read (DATA, my $form_selected_file, -s DATA);
close DATA;
print '</td><td rowspan="1" width="75%"><font face="verdana,arial,helvetica" color="#000000" size=3>';
print '<a name="form_anchor"></a>';
print '<pre class="brush: lisp">' . "\n\n" . $form_selected_file . "\n" . '</pre>';
print "\n\n<br>\n";
close FILE; }
print <<HTML;
</font>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
<!-- end of cream color table -->
<!-- end of red border table -->
HTML
# ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
open(FILE,'/home/lawlist/www/footer.include.shtml') and print <FILE>;
exit 0;