Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.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
Xml XULRunner:阻止指向任意域的链接_Xml_Firefox Addon_Prism_Xul_Xulrunner - Fatal编程技术网

Xml XULRunner:阻止指向任意域的链接

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

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

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

  • “真实”浏览器打开(就像在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);