- 主题:cgi问题 : 子htm中的cgi如何改变父htm内容?
假设, index.html是3个frame :
---
<html>
<frameset cols="200, 300, *">
<frame src="h1_begin.html" name="f1">
<frame src="h2_none.html" name="f2">
<frame src="h3_none.html" name="f3">
</frameset>
</html>
===
我在h1_begin.html中使用了cgi :
---
<form method="POST" action="./test.pl">
<p><INPUT type="concept" name="concept"></p>
<p><center><INPUT type="submit" value="goto"></center></p>
</form>
===
而test.cgi大致是
---
#!/usr/bin/perl
use strict;
use CGI;
my $cgi = new CGI;
print
$cgi->header() .
$cgi->start_html( -title => 'test result') .
$cgi->h1('test result') . "\n";
print $cgi->end_html . "\n";
exit (0);
===
很明显, 执行这个cgi的结果是 : 浏览器上仍然是被分成3个frame, 而第一个frame的内容被test.cgi改变了. 换言之, test.cgi改变的是frame1的内容.
我的问题是 : 如果我试图让test.cgi修改所有3个frame的内容, 用cgi可以实现吗?
--
FROM 123.117.77.*
【 在 anami (nakupenda) 的大作中提到: 】
: 假设, index.html是3个frame :
: ---
: <html>
: <frameset cols="200, 300, *">
: <frame src="h1_begin.html" name="f1">
: <frame src="h2_none.html" name="f2">
: <frame src="h3_none.html" name="f3">
: </frameset>
: </html>
: ===
: 我在h1_begin.html中使用了cgi :
: ---
: <form method="POST" action="./test.pl">
<form method="POST" action="./test.pl" target="_top">
好像是吧
: <p><INPUT type="concept" name="concept"></p>
: <p><center><INPUT type="submit" value="goto"></center></p>
: </form>
: ===
: 而test.cgi大致是
: ---
: #!/usr/bin/perl
: use strict;
: use CGI;
: my $cgi = new CGI;
: print
: $cgi->header() .
: $cgi->start_html( -title => 'test result') .
: $cgi->h1('test result') . "\n";
: print $cgi->end_html . "\n";
: exit (0);
: ===
: 很明显, 执行这个cgi的结果是 : 浏览器上仍然是被分成3个frame, 而第一个frame的内容被test.cgi改变了. 换言之, test.cgi改变的是frame1的内容.
: 我的问题是 : 如果我试图让test.cgi修改所有3个frame的内容, 用cgi可以实现吗?
--
FROM 113.225.34.*
谢谢. 用这种方法确实可以更改.
又遇到新问题了.
test.pl我写成
---
#!/usr/bin/perl -w
print "Content-type: text/html\r\n\r\n";
print "<HTML>\n";
print "<HEAD><TITLE>goto</TITLE></HEAD>\n";
print "<BODY>\n";
print '<frameset cols="200, *">'."\n";
print '<frame></frame>'."\n";
print '<frame></frame>'."\n";
print '</frameset>'."\n";
print "</BODY>\n";
print "</HTML>\n";
exit (0);
===
注意其中有frameset的定义.
但遗憾的是, 并没有生成frameset.
是不是用这种方式写CGI其实不能实现frameset?
【 在 cyberpunk (GunNM) 的大作中提到: 】
: <form method="POST" action="./test.pl" target="_top">
: 好像是吧
--
FROM 123.117.84.*
【 在 anami (nakupenda) 的大作中提到: 】
: 谢谢. 用这种方法确实可以更改.
: 又遇到新问题了.
: test.pl我写成
: ---
: #!/usr/bin/perl -w
: print "Content-type: text/html\r\n\r\n";
: print "<HTML>\n";
: print "<HEAD><TITLE>goto</TITLE></HEAD>\n";
: print "<BODY>\n";
~~~~~~~~~~~~~~~~~删掉
: print '<frameset cols="200, *">'."\n";
: print '<frame></frame>'."\n";
: print '<frame></frame>'."\n";
: print '</frameset>'."\n";
: print "</BODY>\n";
~~~~~~~~~~~~~~~~~~删掉
: print "</HTML>\n";
: exit (0);
: ===
: 注意其中有frameset的定义.
: 但遗憾的是, 并没有生成frameset.
: 是不是用这种方式写CGI其实不能实现frameset?
你的问题和CGI无关...
--
FROM 221.223.65.*