2010-11-21 23 views
1

CSSとJSを使用してウェブサイトの外観を変更するこの拡張機能を書きました。しかし、今では、ユーザーがウェブサイトの機能を切り替えることができるように、いくつかのチェックボックス設定を拡張機能に追加したいと考えています。Safari拡張機能にチェックボックスの設定を追加する

私はドキュメントを読んでみると、ウェブ全体を検索しました。私はリバースエンジニアができるデモ拡張を探すことを試みたが、役に立たなかった。

「チェックボックス」を追加し、「サイドバー」というタイトルを付け、「キー」値に「tg_sidebar」を付けたいとしましょう。誰かがこのためにイベントリスナーを追加する方法を説明してから、jqueryコードをトリガーできますか?

[私はこのStackOverflowクエリ[http://stackoverflow.com/questions/3032945/safari-extension-how-to-respond-to-settings-changes]は物事をはっきりさせると思いますが、それでも説明しません多く]。

ここで働いたことがあります。

function numberChanged(event) 
{ 
     if(event.key == "tg_sidebar") 
      alert("Number has changed!"); 
    } 

    safari.extension.settings.addEventListener("change",numberChanged,false); 

[拡張設定ウィンドウのスクリーンショット:http://dznr.org/56wi]私は設定を切り替えるたび

は今、私はエラーを取得します。しかし、警告機能をCSSクラスの追加または削除と置き換えることは機能しません。

以下のアンサーでコードを使ってみましたが、何もしません。いくつかの拡張のコードを見ることができるように完璧だったでしょうか...

さらにもう1つ、明らかにされていない場合は、設定を変更する必要があります永続的です。つまり、設定をチェックすると、ページが読み込まれるたびにそのアクションが実行されます。

答えて

0

拡張機能で設定したとします。 かなりシンプルです。

var type = safari.extension.settings.yourSettingsCall; 

例:あなたの関数は、これはあなたのglobal.htmlコールで呼び出されるたび

var type; 
     function performCommand(event) 
    { 
     if (event.command === "start-event") { 
      type = safari.extension.settings.tg_sidebar; 
} 
    safari.application.activeBrowserWindow.activeTab.page.dispatchMessage("type", type); 
     } 

は、あなたのinject.jsは、これらを追加します。

safari.self.addEventListener("message", handleMessage, false); 

function handleMessage(event){ 
    if (event.name === "type") { 
//run code 
    } 
} 
+0

応答をありがとうが、私はまだ完全に混乱しています。上記の質問を更新してください(もう一度見てください) – Goobi

+0

正直言って、私のコードは私の内線から直接引き出され、毎回動作します。コードを投稿する必要があります。 – switz

+0

私は他の拡張機能のコードを使用することができました。正常に動作します。 私はまだそれを理解していない、それは私が最も嫌なものです。 : - / – Goobi

関連する問題