防止浏览器在鼠标事件后重新加载主页面

时间:2015-12-01 05:04:04

标签: python html web cgi

我有一个网页,允许我将串行命令发送到我的覆盆子pi上的串口。主页面是html,它有图像,当我点击图像javascript调用cgi文件发送命令到串行。一切都在桌面浏览器上正常工作,当我按下图像即时停留在同一页面上,但是当我在iphone或ipad上执行此操作时,它会将我重定向到cgi文件的位置。 这是我的代码 的 1。 HTML

<img src="img/sound.png" alt="sound" id="sound_b" ontouchstart="changeImageSound(), sound()" ontouchend="changeImageSound()">

2.JavaScript

function sound() {
document.location="helpers/sound.cgi";
}

3.cgi

#!/usr/bin/python
print "Status: 204 No Content"
print "Content-type: text/plain"
print ""
import cgi
import serial
import time

# Open a serial connection to Roomba
ser = serial.Serial(port='/dev/ttyUSB0', baudrate=115200)

# Assuming the robot is awake, start safe mode so we can hack.
ser.write('\x83')
time.sleep(.1)

# Program a five-note start song into Roomba.
ser.write('\x8c\x00\x05C\x10H\x18J\x08L\x10O\x20')

# Play the song we just programmed.
ser.write('\x8d\x00')
time.sleep(1.6) # wait for the song to complete

# Leave the Roomba in passive mode; this allows it to keep
#  running Roomba behaviors while we wait for more commands.
ser.write('\x80')

# Close the serial port; we're done for now.
ser.close()

2 个答案:

答案 0 :(得分:0)

您只需将其添加到您的Javascript代码

即可
event.preventDefault();

答案 1 :(得分:0)

你可以将下面提到的javascript代码添加到声音函数中,但它需要内部的事件对象。否则你可以直接在ontouchstart中使用它

event.preventDefault();