限制gtkmozembed只加载来自某些服务器的页面

时间:2012-09-07 13:39:43

标签: python gtk

对于Python项目我使用 gtkmozembed MozEmbed()作为简单的HTML浏览器。我在寻找什么:

(1)限制,允许哪些服务器连接到,例如只有http://localhost

和/或

(2)一种" onClick()" 功能,用于检查用户点击的链接是否指的是允许的网页/服务器。

有人有想法吗?

1 个答案:

答案 0 :(得分:1)

O.K。,这令人尴尬。我一直在stackoverflow上提问,不久之后在其他地方找到答案。遗憾。

然而,这里的答案是:gtkmozembed有一个名为"open-uri"的信号,它可以连接到这样的回调函数:

browser = gtkmozembed.MozEmbed()
browser.connect("open-uri", OpenUri)

def OpenUri(mozembed, uri, data=None):
    if uri.startswith('http://localhost/'):
        print "Will now open", uri, "..."
        return False

    print uri, "is not in the list of allowed uris." + "\nLoading denied."
    return True

除非有人有更好的解决方案吗? ......我会用这个。

E D I T:

此解决方案 100%保存。虽然用户无法直接打开不允许的链接,但源代码中嵌入了链接,例如

 <img src="http://cdn.sstatic.net/stackoverflow/img/apple-touch-icon.png" />

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>

仍然会被加载!