簡體   English   中英

當瀏覽器窗口打開時,顯示來自Firefox擴展的警報

[英]Show an alert from a Firefox extension when a browser window opens

我正在嘗試制作一個非常簡單的Firefox擴展。 我需要它在Firefox窗口打開時顯示警報框。 當我打開窗口時,該消息沒有顯示,但是當我重新加載所有鑲邊時(通過Extensions Developer加載項)卻顯示了該消息。

我的覆蓋文件:

<?xml version="1.0"?>
<overlay xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
    <script type="application/x-javascript" src="chrome://adTest/content/alert.js" />
</overlay>

我的腳本文件:

alert("HI!");

我的chrome.manifest文件:

content adTest content/ contentaccessible=yes
overlay chrome://browser/content/browser.xul chrome://adTest/content/adTestOverlay.xul

我非常確定其余代碼是正確的,因為我已經添加了XUL元素用於測試目的,並且所有內容都與警報框分開。

您不能在實際加載和顯示瀏覽器窗口之前顯示alert() ,因為警告對話框必須具有完全初始化且可見的父窗口。 但是,您的覆蓋腳本將在加載/初始化期間運行...

瀏覽器控制台應顯示錯誤NS_ERROR_NOT_AVAILABLE: Cannot call openModalWindow on a hidden window (但事實是,僅當從load事件處理程序中調用alert時才顯示)。

因此,首先等待load事件,然后為事件循環提供一個實際顯示窗口的機會,例如

addEventListener("load", function() {
    setTimeout(function() { alert("something"); }, 0);
});

也可以做:

Services.prompt.alert(null, 'title of alert', 'alert msg');

您可以提供null window代替null ,這將使該窗口在顯示警報時變為模態且無法選擇(就像普通警報一樣)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM