![](/img/trans.png)
[英]Get the firefox browser window handle from the extension's javascript
[英]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.