带有python cgi的Javascript未给出预期结果
在下面的PythonCGI脚本中,我使用javascript函数在单击时更改图片。但显然它似乎不起作用。我是在效仿美国的例子。所以我只想确认一下,是否可以在Python CGI脚本中使用javascript 如果必须在Python中执行相同的示例,那么应该采用什么方法带有python cgi的Javascript未给出预期结果,python,cgi,Python,Cgi,在下面的PythonCGI脚本中,我使用javascript函数在单击时更改图片。但显然它似乎不起作用。我是在效仿美国的例子。所以我只想确认一下,是否可以在Python CGI脚本中使用javascript 如果必须在Python中执行相同的示例,那么应该采用什么方法 #!/usr/bin/env python import cgi print """print "Content-type: text/html; charset=utf-8 <!DOCTYPE html> <
#!/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>
"""
#/usr/bin/env python
导入cgi
打印“”“打印”内容类型:text/html;字符集=utf-8
函数changeImage()
{
element=document.getElementById('myimage')
if(element.src.match(“bulbon”))
{
element.src=“../pic_bulboff.gif”;
}
其他的
{
element.src=“../pic_bulbon.gif”;
}
}
单击灯泡以打开/关闭灯
"""
是的,您可以通过python CGI scrpit在HTML内部发送javascript。您必须更改要发送到的字符串的初始部分:
print """Content-type: text/html; charset=utf-8\n\n
<!DOCTYPE html>
...
print”“”内容类型:text/html;字符集=utf-8\n\n
...
编辑以添加以下注释:
您的代码中有两个问题:
第一,您必须删除“print”部分,因为您已经在打印字符串
第二,它是CGI的一个规范,它必须用“\n\n”分隔标题,例如“内容类型:text/html”;charset=utf-8\n\n“来自以下部分,例如“…”(事实上,由于您有一个隐式“\n”,只需再添加一个就足够了…。是的,您可以通过python CGI scrpit在HTML内部发送javascript。您必须更改要发送到的字符串的初始部分:
print """Content-type: text/html; charset=utf-8\n\n
<!DOCTYPE html>
...
print”“”内容类型:text/html;字符集=utf-8\n\n
...
编辑以添加以下注释:
您的代码中有两个问题:
第一,您必须删除“print”部分,因为您已经在打印字符串
第二,它是CGI的一个规范,它必须用“\n\n”分隔标题,例如“内容类型:text/html”;charset=utf-8\n\n“来自以下部分,例如“…”(事实上,由于您有一个隐式“\n”,只需再添加一个就足够了…。它起作用了,非常感谢!!您能告诉我更改字符串的初始部分时发生了什么(其意义)?@sarbjit有两个问题-第一个是琐碎的问题,第二个是你自己很难发现的问题:请查看我在答案中添加的信息,了解详细信息。这很有效,非常感谢!!你能告诉我更改字符串的初始部分时发生了什么(它的意义)?@sarbjit有两个问题——第一个是琐碎的问题,第二个是你自己很难发现的问题:详细信息请参阅我在答案中添加的信息。