Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 限制gtkmozembed仅从某些服务器加载页面_Python_Gtk - Fatal编程技术网

Python 限制gtkmozembed仅从某些服务器加载页面

Python 限制gtkmozembed仅从某些服务器加载页面,python,gtk,Python,Gtk,对于Python项目,我使用gtkmozembed MozEmbed()作为简单的HTML浏览器。我要找的是: (1) 限制,允许连接到哪些服务器,例如仅http://localhost 和/或 (2) 一种“onClick()”函数,用于检查用户单击的链接是否指向允许的页面/服务器 有人有主意吗?好吧,这太尴尬了。我一直在stackoverflow问问题,不久之后在别处找到了答案。对不起 然而,答案是:gtkmozembed有一个被调用的信号,它可以连接到如下回调函数: browser = g

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

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

和/或

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


有人有主意吗?

好吧,这太尴尬了。我一直在stackoverflow问问题,不久之后在别处找到了答案。对不起

然而,答案是:gtkmozembed有一个被调用的信号,它可以连接到如下回调函数:

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" />



仍将加载

我们在3年前就需要类似的东西,并且不得不切换到WebKit(Gtk/Qt,其实并不重要)。WebKit对资源加载/url请求有不同的信号,并允许您拦截。@MartinSamson我不知道3年前是否可能,但现在有了一个解决方案,请参见下文。感谢您发布自己的答案!太多人忘记了这么做。别忘了接受这个答案,知道你的问题是什么solved@Ancurio我还没有找到一个100%节省的解决方案。我切换到webkit。
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>