0

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

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

和/或

(2) 一种“onClick()”函数,用于检查用户点击的链接是否指向允许的页面/服务器。

有人有想法吗?

4

1 回答 1

1

好吧,这越来越尴尬了。我一直在 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

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

编辑:

此解决方案并非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>

仍将被加载!

于 2012-09-07T15:20:10.610 回答