blob: f1340ba2cdd03e09b44e5019c38624e7013ff36c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
---
title: Toolbar
slug: orphaned/Code_snippets/Toolbar
tags:
- Add-ons
- Extensions
original_slug: Code_snippets/Toolbar
---
<h3 id="Adding_a_toolbar_button">ツールバーボタンを追加する</h3>
<p>二つのチュートリアルが参照可能です。</p>
<ul>
<li>初心者向けの詳細な説明のある順を追ったチュートリアル : <a href="ja/Custom_Toolbar_Button">Custom Toolbar Button</a></li>
<li>すでに拡張を作成しており開発の基本は知っている人向けの、ツールバーボタン追加に必要な手順を述べたチュートリアル : <a href="ja/Creating_toolbar_buttons">Creating toolbar buttons</a></li>
</ul>
<h3 id="Adding_button_by_default">Adding button by default</h3>
<p>スタマイズされたツールバーパレット用のツールバーボタンを入れて、あなたの拡張を開発・配布したとしても、デフォルトではボタンは有効になりません。ユーザはボタンをツールバーへドラッグする必要があります。下のコードを利用することで、あなたのボタンが最初のインストールおよび XPI の再起動後にデフォルトで表示されるようにできます。</p>
<div class="note">
<p>ボタンをデフォルトで追加するのは、正しく行うのが非常に難しいという点で、ほぼ間違いなく悪習慣です。ユーザはあなたがボタンを追加したツールバーを非表示にしているかもしれませんし、追加したコードが正常に動作しないようにツールバーをカスタマイズしているかもしれません。</p>
<p>Firefox がこの目的に API を提供することに対しては、バグが立てられています。<span class="comment">need the bug #</span></p>
</div>
<h4 id="Notes">メモ</h4>
<ol>
<li>このサンプルは、Firefox 独自のものですが、Thunderbird でも正しいノードをターゲットに変更することで動作します。</li>
<li>デフォルトでボタンを追加するのは、正しい値とともに追加可能で、あなたの拡張のよく利用される機能に対してである場合だけにしてください。ユーザに限られた UI スペースしかないかもしれないことを考慮し、本当に必要かどうか検討してください。</li>
<li>このコードは browser.xul のオーバーレイに含められる必要があります。</li>
</ol>
<h4 id="Example">サンプル</h4>
<pre class="eval"> try {
var firefoxnav = document.getElementById("nav-bar");
var curSet = firefoxnav.currentSet;
if (curSet.indexOf("my-extension-button") == -1)
{
var set;
// Place the button before the urlbar
if (curSet.indexOf("urlbar-container") != -1)
set = curSet.replace(/urlbar-container/, "my-extension-button,urlbar-container");
else // at the end
set = firefoxnav.currentSet + ",my-extension-button";
firefoxnav.setAttribute("currentset", set);
firefoxnav.currentSet = set;
document.persist("nav-bar", "currentset");
// If you don't do the following call, funny things happen
try {
BrowserToolboxCustomizeDone(true);
}
catch (e) { }
}
}
catch(e) { }
</pre>
|