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