2014-07-10 24 views
1

我得到的窗口utils這樣的:nsIDOMWindowUtils.isInModalState()不工作

var utils = Services.wm.getMostRecentWindow('navigator:browser'). 
      QueryInterface(Components.interfaces.nsIInterfaceRequestor). 
      getInterface(Components.interfaces.nsIDOMWindowUtils); 

然後運行該代碼表示​​,它不是一個函數:

Services.prompt.alert(null, 'is modal?', utils.isInModalState()) 
//Exception: utils.isInModalState is not a function 

即使它說in the documentation它是。

我無法運行該代碼之一:

utils.enterModalState() 

它運行沒有錯誤,但窗口不進入或離開模式狀態。

+0

關於「它無誤地運行,但窗口不進入或離開模態。」是什麼讓你覺得它不起作用? – nmaier

+0

當我點擊窗口時仍然可以訪問。你知道當你使用'Services.prompt.alert(null,'blah','blah')'後面的窗口不能被點擊或最小化。我認爲莫達爾應該是這樣的。 – Blagoh

+0

啊,更新了我的答案。 – nmaier

回答

2

.isInModalState財產實際上是tagged [noscript],所以它是不可用的JavaScript,只有C++。

.enterModalState()不符合您的想法。它不會創建一個窗口UI模式(如警告對話框)。它只是在窗口中暫停腳本和事件處理。

+0

謝謝。在MDN上他們沒有說明它不是腳本。 :(你知道如何去激活這樣的窗口嗎?我正在尋找一個窗口,它也可以重新啓用。 – Blagoh