XULRunner:防止链接到任意域

时间:2009-06-24 07:36:45

标签: xml firefox-addon prism xul xulrunner

假设我们有一个像XULRunner应用程序的Mozilla Prism。有一个带有< browser />的XUL窗口元素,浏览器在给定域上显示网页(例如example.com)。

现在example.com上有几个链接。如果用户关注本地链接(即,留在example.com上),则应该允许她关注。另一方面,如果链接转到elpmaxe.moc,那么应该(我不介意)这两种可能性中的任何一种:

  • “真实”浏览器打开(就像在Prism中一样)或
  • 没有任何反应。

有什么想法可以做到这一点吗?使用browser.document.onload或DOMready或此类事件是不够的,因为即使在页面加载期间也必须安全地阻止链接(即,当这些事件都没有被触发时)。

1 个答案:

答案 0 :(得分:1)

您似乎希望功能类似于BlockSite提供的功能 - 除非您希望将应用的域列入白名单并阻止其他所有内容。 installing extensions within XUL Runner上有一些可能有帮助的MDC文档。

或者你可以查看源代码并尝试找出它所挂钩的位置 - 这样你就可以实现一种替代行为来阻止并避免使用你的应用程序发布扩展。我认为BlockSite.js是关键文件,看起来像这里添加了处理程序(第171行):

var observerService = Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService);
observerService.addObserver(BlockSiteObserver, "http-on-modify-request", false);

BlockSiteObserver函数在上面的代码中定义。