タグ

ブックマーク / www.xuldev.org (7)

  • SCRAPBLOG : [Places] 右クリックメニューへのメニュー項目追加

    各 XUL はいずれも placesOverlay.xul (chrome://browser/content/places/placesOverlay.xul) をオーバーレイしている。そこで、拡張機能から placesOverlay.xul に対してさらにオーバーレイして menuitem 要素などを追加することで、上記すべての場所の右クリックメニューへ一括してメニュー項目を追加することが可能となる。 サンプル 例として、ブックマークの右クリックメニューへ「Show Information」という新しいメニュー項目を追加する。 chrome.manifest overlay chrome://browser/content/places/placesOverlay.xul chrome://myext/content/placesUIOverlay.xul placesUIOverla

    ku0522
    ku0522 2008/07/17
    コンテキストメニューのソースファイル対応表。
  • SCRAPBLOG : setTimeout のコールバック関数内でローカル変数を使用する

    var fruits = ["apple", "orange", "banana"]; という配列があるとき、 for (var i = 0; i < fruits.length; i++) { window.setTimeout(function() { alert(fruits[i]); }, i * 1000); } こうすると1秒おきに「undefined」が3回表示されてしまう。コールバック関数が呼び出されたときにはすでにローカル変数 i は破棄されている i の値が3になっているためである。 以下のようにコールバック関数を文字列にしておけば、1秒おきに「apple」「orange」「banana」が表示される。 for (var i = 0; i < fruits.length; i++) { window.setTimeout("alert('" + fruits[i] +

    ku0522
    ku0522 2007/11/03
    setTimeoutの引数にローカル変数を渡す。スコープを渡すのは無理。letで特定の変数を渡すことは可能。
  • SCRAPBLOG : xul:filefield

    ユーザが選択したファイルやフォルダを表示するような設定UIを作る場合には xul:filefield 要素が便利である。例えば Firefox のダウンロード先フォルダの設定UIには xul:filefield 要素が使われている。 XUL filefield 要素を使うためには、以下の2つのスタイルシート参照する処理命令を追加する必要がある。2つめのスタイルシートは Firefox 専用である。 <?xml-stylesheet href="chrome://mozapps/content/preferences/preferences.css"?> <?xml-stylesheet href="chrome://browser/skin/preferences/preferences.css"?> 多くの場合、 filefield 要素はファイルを選択するためのボタンとセットで使用され

    ku0522
    ku0522 2007/10/28
    Quoted: <hbox align="center"> <filefield id="myFileField" flex="1" /> <button label="Browse..." oncommand="selectFile();" /> </hbox>
  • SCRAPBLOG : nsIScriptSecurityManager で危険なURIを除外する

    nsIScriptSecurityManager の checkLoadURI や checkLoadURIStr メソッドによって、ある URI のページからリンクされる別の URI がポリシーに沿ったものであるかどうかを判別することができる。 以下のサンプルは、現在のURI (sourceURI) に対して、リンク先のURI (targetURI) が javascript: や data: プロトコルで表された危険が潜む可能性のある URI であるかどうかをテストしている。 var sourceURI = "http://www.example.com/"; var targetURI = "javascript:alert('Blah');"; var SECMAN = Components.classes["@mozilla.org/scriptsecuritymanager;1

    ku0522
    ku0522 2007/10/16
    chrome://browser/content/feeds/subscribe.xhtml
  • SCRAPBLOG : カスタムツリービューの基本的な使い方(その1~表示)

    何らかのデータをツリー (xul:tree 要素) で表示するためにはいくつかの方法がありますが、最も一般的なのはカスタムツリービュー方式であるかと思います。ここでは、「何らかのデータ」として最も単純な一次元の配列を想定しますが、二次元配列や何らかのオブジェクトの配列など、他のデータ構造にも応用可能です。 fruits.xul はじめに以下のように tree 要素を配した fruits.xul を作成します。 <?xml version="1.0"?> <?xml-stylesheet href="chrome://global/skin/" type="text/css"?> <page xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" title="Fruits" onload="init();"

  • SCRAPBLOG : textboxのundo/redo履歴をクリアする

    Firefox 2.0 以降であれば、 textbox 要素の editor プロパティから nsIEditor にアクセスし、 nsIEditor の transactionManager プロパティからアンドゥやリドゥについての色々な操作が可能である。 例えばアンドゥ/リドゥの履歴をクリアするには以下のようにすればよい。 document.getElementById("myTextbox").editor.transactionManager.clear(); ちなみに chrome://browser/content/sanitize.js を見ると、 searchBar.textbox.editor.enableUndo(false); searchBar.textbox.editor.enableUndo(true); というやり方をしている。これでも同じ結果が得られるようだ。

    ku0522
    ku0522 2007/08/24
    nsIAuthPromptと組み合わせて任意のサービスで使える
  • SCRAPBLOG : canvas要素によるWebページのスクリーンショット保存機能

    今年4月に行なわれたMozillaParty7.0において、いくつか有用な情報を得ることができたが、中でもcanvas 要素の toDataURL メソッドで取得した data:URL をファイルへ保存するという Taken さんの情報は、 ScrapBook で保存したWebページのコレクションをサムネイル画像によって一望するというプランを一気に実現へと近づけることができるありがたいものであった。その具体的な方法はTaken SPC : Mozilla Party JP 7.0 に行ってきましたのポストでも説明されているが、これを利用して現在ブラウザに表示されているWebページのスクリーンショット(今回はサムネイルではなく、原寸大のスクリーンショット)をPNG画像として保存する機能を実装してみる。 (1) XUL html:canvas要素を chrome://browser/conte

  • 1