我遇到了一個問題,即如果在當前窗口的頁面上,焦點被JavaScript觸發,它會從我的插件輸入中竊取焦點。是否有辦法強制面板中的輸入保持專注。如何將焦點強制爲面板輸入。 Firefox插件sdk
$(inputSelector).focusout(function(){
$(inputSelector).focus();
});
$(inputSelector).blur(function(){
$(inputSelector).focus();
});
我已經試過這似乎我的測試頁面上,但不是在我的面板:(工作
按照文檔上面的 - >https://developer.mozilla.org/en-US/Add-ons/SDK/High-Level_APIs/panel 將焦點設置爲false應該
設置爲false可防止在顯示面板時將焦點移開 只有在必要時才關閉此功能,以防止出現輔助功能問題 可選,默認爲true
我已經設置了我的面板。
var text_entry = require("sdk/panel").Panel({
width: text_entry_width,
height: text_entry_h,
focus: false, // doesnt seem to work....
contentURL: data.url("entry.html"),
contentScriptFile: [
data.url("jquery-2.1.1.min.js"),
data.url("text.js")
],
contentStyleFile: [
data.url("styles.css")
]
});
它不追加,它設置爲false作品:(。
任何幫助,指導或建議將是真棒:)乾杯。
_____________ UPDATE ____________________________________________
似乎有是我不好解釋:(所以,我必須上傳到YouTube的視頻,希望能解釋這個問題好一點有些混亂。
https://www.youtube.com/watch?v=5fhJzpa515Y&feature=youtu.be
下面再找一些代碼。
Panel Html
<html>
<head></head>
<body>
<div id="resultTableTop" class="resultTable"></div>
<input type="text" id="edit-box"></input>
<div id="resultTableBottom" class="resultTable"></div>
</body>
</html>
熱鍵代碼
var showHotKey = Hotkey({
combo: "accel-t",
onPress: function() {
text_entry.show();
}
});
面板JS顯示listenter
self.port.on("show", function onShow() {
$('input').focus();
console.log('hi');
});
希望這是更清楚一點,現在的幫助迄今爲止:)謝謝:)。
'面板'是非模態的設計。你不能,也不應該強迫用戶與之交互。 – paa 2014-11-08 11:49:20
這似乎有點傻,即時通過鍵入我的文本框和一些Java腳本niks焦點中途。我一直覺得,你至少可以按照我的jQuery代碼做些簡單的事情。目標不是強制用戶,而是當用戶選擇與輸入交互時,我希望能夠將注意力集中在輸入上。 – Spaceman 2014-11-08 12:54:36
你的意思是一個網頁腳本竊取你的面板焦點? – paa 2014-11-08 13:23:42