2015-12-01 1 views
0

J'ai une page Web qui me permet d'envoyer des commandes série au port série sur mon pi de framboise. La page principale est en html et ses ont des images, et quand je clique sur l'image javascript appelle le fichier cgi qui envoie la commande à la série. Tout fonctionne correctement sur le navigateur de bureau, quand j'appuie sur l'image im restant sur la même page, mais quand je le fais sur l'iphone ou l'ipad son me redirigeant vers l'emplacement du dossier de cgi. Voici mon code HTML 1.Empêcher le navigateur de recharger la page principale après l'événement de la souris

<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() 

Répondre

0

Vous venez d'ajouter ceci à votre code Javascript ,

event.preventDefault(); 
+0

à la fonction javascript? –

+1

vous devez le mettre dans la fonction javascript –

0

Vous pouvez ajouter le code javascript mentionné ci-dessous à la fonction sonore, mais l'objet événement doit y figurer. sinon vous pouvez l'avoir dans le ontouchstart directement

event.preventDefault();