Javascript与Python CGI未给出预期结果

2 投票
1 回答
2758 浏览
提问于 2025-04-17 18:00

在下面这个Python CGI脚本中,我使用了JavaScript函数来实现点击时更换图片的功能。但看起来这个功能并没有正常工作。我是按照w3schools的JavaScript示例来做的。所以我想确认一下,是否可以在Python CGI脚本中使用JavaScript。

如果要用Python来做同样的例子,应该怎么做呢?

#!/usr/bin/env python

import cgi

print """print "Content-type: text/html; charset=utf-8
<!DOCTYPE html>
<html>
<body>
<script>
function changeImage()
{
element=document.getElementById('myimage')
if (element.src.match("bulbon"))
  {
  element.src="../pic_bulboff.gif";
  }
else
  {
  element.src="../pic_bulbon.gif";
  }
}
</script>

<img id="myimage" onclick="changeImage()"
src="../pic_bulboff.gif" width="100" height="180">

<p>Click the light bulb to turn on/off the light</p>

</body>
</html>

"""

1 个回答

4

是的,你可以通过一个Python CGI脚本在HTML中发送JavaScript。你需要修改你发送的字符串的开头部分:

print """Content-type: text/html; charset=utf-8\n\n
<!DOCTYPE html>
...

编辑:添加以下评论:

你的代码有两个问题:

第一个问题是,你需要去掉 'print "' 这一部分,因为你已经在打印一个字符串了;

第二个问题是,CGI有个规定,必须用"\n\n"来分隔头部和后面的内容,比如 "content-type: text/html; charset=utf-8\n\n" 和后面的部分,比如 "..."(实际上,由于你已经有一个隐含的"\n",只需要再加一个就可以了)。

撰写回答