我們有一個程序可以在實時環境或測試環境中運行。唯一的區別是測試環境中的URL包含「/ test /」。在測試環境中,有些函數會導致它切換到實時環境(當URL被硬編碼時!),所以我試圖解決這個問題。如何在Python中獲取此JavaScript函數的返回值?
我已經在JavaScript中創造了這個功能:
function GetTestMode()
{
// If "/test/" exists in URL, keep it there (we are in test mode).
var currentURL = document.URL;
var sTestMode = "";
if (currentURL.indexOf("/test/") != -1)
{
// test mode (according to URL)
sTestMode = "test/";
}
return sTestMode;
}
這是使用的JavaScript函數和按預期工作。
但是,大部分的UI代碼都是用Python編寫的(創建HTML)。所以我想用Python獲得這個JavaScript結果。到目前爲止,我有:
import cgi
import os
import sys
import re
def DrawUI (self, short=False):
print '<br />'
print '<div class="box2">'
print '<table cellspacing=0 cellpadding=0 border="0">'
print '<tr>'
sTestMode = "test mode = %s" % ('<a href="javascript:GetTestMode()" >')
print 'sTestMode = ' + sTestMode + '<br />'
這會導致下面的代碼(這甚至可以print 'hello world'
)成爲一個鏈接,如果我點擊它,從JavaScript函數顯示正確的返回值的打印語句瀏覽器。
我怎樣才能讓sTestMode
包含返回值(無需用戶交互)?
你使用框架嗎?打印的字符串如何到達瀏覽器? – Fabian 2012-08-14 10:55:24
@Fabian:我是一個完整的新手編輯繼承代碼,所以我不確定。我不認爲我們使用框架(只是檢查導入)。除了這裏陳述的內容,我不知道打印的字符串如何到達瀏覽器。我們有一個我們放置Python文件的文件夾,頁面可以立即在公司內部網中看到。 – Wikis 2012-08-14 11:00:58
它可能是mod_python或mod_wsgi的Apache嗎?它將在您正在編輯的文件的頂部導入哪些模塊?你能把他們納入你的問題嗎? 你真的應該知道你在使用什麼,並讓我們知道,以便我們能夠正確迴應。無論如何,你需要的是通過XMLHttpRequest對象形式提交或Ajax調用。 – Fabian 2012-08-14 13:19:54