Xml XULRunner:阻止指向任意域的链接
假设我们有一个类似Mozilla Prism的XULRunner应用程序。有一个带有元素的XUL窗口,浏览器在其中显示给定域(例如example.com)上的网页 现在example.com上有几个链接。如果用户关注本地链接(即留在example.com上),则应允许其关注。另一方面,如果链接指向elpmaxe.moc,则应该有(我不介意)这两种可能性中的任何一种:Xml XULRunner:阻止指向任意域的链接,xml,firefox-addon,prism,xul,xulrunner,Xml,Firefox Addon,Prism,Xul,Xulrunner,假设我们有一个类似Mozilla Prism的XULRunner应用程序。有一个带有元素的XUL窗口,浏览器在其中显示给定域(例如example.com)上的网页 现在example.com上有几个链接。如果用户关注本地链接(即留在example.com上),则应允许其关注。另一方面,如果链接指向elpmaxe.moc,则应该有(我不介意)这两种可能性中的任何一种: “真实”浏览器打开(就像在Prism中一样),或者 什么也没发生 有什么办法吗?仅使用browser.document.onl
- “真实”浏览器打开(就像在Prism中一样),或者
- 什么也没发生
有什么办法吗?仅使用browser.document.onload或DOMready或此类事件是不够的,因为即使在页面加载期间(即,当这些事件尚未触发时),链接也必须被安全地阻止。您似乎想要与提供的功能类似的功能-除了您想要将应用程序的域列入白名单并阻止其他所有内容之外。有一些MDC文档可能会有所帮助 或者,你可以浏览一下源代码,并尝试找出它挂接在哪里——这将让你实现一种替代行为,而不仅仅是阻塞,并避免在应用程序中附带扩展。我认为是关键文件,看起来这里添加了处理程序(第171行):
BlockSiteObserver
功能在上面的代码中定义。Hmm,一个可能的(但尚未测试)解决方案可能是:browser.document.addEventListener(“卸载”),但我仍然不知道如何确定旅程的目的地。酷!谢谢你给我指这个。看起来很有希望。只要我能测试它(应该在本周完成),我就会接受答案。是的,观察家正是我所寻找的。非常感谢。
var observerService = Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService);
observerService.addObserver(BlockSiteObserver, "http-on-modify-request", false);