2010-05-24 14 views
6

Zum Beispiel in Python:Passing JavaScript-Variable

#!/usr/bin/python 
print "This is python." 

print "<script type="text/javascript"> 
      var pass_to_python = new Number(7) 
     </script>" 

the_number = pass_to_python??? 

Wie erhalte ich die pass_to_python in Python?

Antwort

0

HTTP ist ein einfaches Anfrage-Antwort-Protokoll, es Ihnen für weitere Informationen vom Client der Mitte des Stromes und wartet nicht, lassen Pause - und da Ihre JS in der läuft Browser (JS kann auf dem Server laufen, aber die meisten Leute würden das nicht versuchen, wenn sie den Code nicht benötigen, um im Browser zu laufen, so nehme ich an, dass die Verwendung von serverseitigem JS nicht in Frage kommt) und der Python läuft auf dem Server, das ist das, was Sie brauchen, damit Ihr Code funktioniert (ebenso wie Sie Ihre zerbrochene Anführungszeichen-Verschachtelung im Python-Code reparieren).

Sie müssen das vollständige Dokument laden und dann eine neue HTTP-Anforderung ausgeben.

Das können die JS location.href (making sure you have a fallback for non-JS clients) gesetzt haben, könnte es mit XMLHttpRequest beinhalten asynchron neue Daten zu laden, könnte es am besten unter Verwendung eines anderen Technik sein (es ist schwer, sicher zu sagen, wie Ihr Beispiel zu viel to tell what X is vereinfacht)

3

Mit pyv8 können Sie Javascript in Python ausführen.

import PyV8 

class Global(PyV8.JSClass): 
    pass 

with PyV8.JSContext(Global()) as ctxt: 
    the_number = ctxt.eval("var pass_to_python = new Number(7)") 

siehe http://code.google.com/p/pyv8/

+0

perfekt! Dieses Importmodul und Zeilen die Codes ... – opmeitle

+0

Sorry, ich verstehe nicht, was Sie sagen. –

+0

eine Form der Schmeichelei, was ich sah, nichts mehr. – opmeitle