2010-05-24 168 views
6

例如:傳遞JavaScript變量到Python

#!/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??? 

我如何在Python中pass_to_python?

回答

0

HTTP是一個簡單的請求 - 響應協議,它不會讓你暫停中流,等待來自客戶端的詳細信息 - 而且由於你的JS在運行瀏覽器(JS可以在服務器上運行,但如果大多數人不需要代碼在瀏覽器中運行,大多數人都不會嘗試這種方式,所以我假設使用服務器端JS是不可能的) Python在服務器上運行,這就是你的代碼工作所需要的東西(以及修復你在Python代碼中嵌套的斷言)。

您需要加載完整文檔,然後發出新的HTTP請求。

這可能涉及具有JS設置location.hrefmaking sure you have a fallback for non-JS clients),它可能涉及到使用XMLHttpRequest的異步加載新的數據,它可能採用另一種技術是最好的(這是很難說肯定是你的榜樣簡化太多to tell what X is

3

使用pyv8你可以在Python中執行javascript。

import PyV8 

class Global(PyV8.JSClass): 
    pass 

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

看到http://code.google.com/p/pyv8/

+0

完美!這個導入模塊和行代碼... – opmeitle 2012-11-03 04:26:02

+0

對不起,我不明白你在說什麼。 – 2012-11-05 00:27:09

+0

我所看到的一種奉承形式,僅此而已。 – opmeitle 2012-11-05 03:26:00