我们有一个程序可以在实时环境或测试环境中运行。唯一的区别是测试环境中的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