2016-07-16 11 views
0

コンテンツのスクリプトを使用してカスタムHTMLメニューをページに追加するためのクロム拡張を作成します。コンテンツがうまく動作し、メニューは完璧に動作しますが、私は現在、このように、VARの中からHTMLをロードしています:jQueryを実行する追加読み込み済みHTML

var gacMenu = ''; 
    gacMenu+='<div id="menu">'; 
    gacMenu+='menu content HTML'; 
    gacMenu+='menu content HTML'; 
    gacMenu+='menu content HTML'; 
    gacMenu+='menu content HTML'; 
    gacMenu+='</div>'; 

し、このようにページに追加:

$("body").append(gacMenu); 

ので、私はまだメニュー自体を作成していますが、varからHTMLを編集するのは面倒です。メニューコードだけでHTMLを作成しようとしていましたが、このコードを使用してこのファイルをLOADしてAPPENDします。

$(function() { 
    $('body').append($('body').load('menu.html')); 
}); 

コンテンツがロードされていますが、.click()や.change()のような他のjquery関数は、ロードされた&添付されたコンテンツでは機能しません。作業シナリオに

、HTMLとjQueryの機能の両方varが同じJSファイルです。ここではHTMLがVARからロードされたときに動作するいくつかのコードがあり、それはHTMLをファイルからロードされたときに動作しません。

$("input:checkbox[name=onoffswitch]").change(function() { 
    if ($(this).is(':checked')) { 
     chrome.storage.sync.set({'gacMenuSwitch': '1'}, function(toggleOn){ // Define a variável condificonal do menu para 1 
     console.log('Switch is ON' + '\n' + 'Menu var is set to 1'); 
     }); 
    } else { 
     chrome.storage.sync.set({'gacMenuSwitch': '0'}, function(toggleOff){ // Define a variável condificonal do menu para 0 
     console.log('Switch is OFF' + '\n' + 'Menu var is set to 0'); 
     }); 
    } // fim do if/else 
}); 

これはラメ質問であれば申し訳ありませんが、私は早期によプログラミングの段階。私は何が欠けているのですか?私はコンテンツのスクリプトを使用してHTMLを追加するために行うにはいくつかのことがあった見つける@wOxxOmの助けを借りて

+0

おかげです。私は私の質問を編集しました。すべてがmenu.jsという同じ.jsファイルにありますが、menu.htmlからHTMLを追加しようとすると、menu.jsのコードは機能していないようです。 – SoMeGoD

+0

'load'は非同期なので、' complete'パラメータのための関数にそのコードを入れるべきだと思います: 'load( 'menu.html'、function(){/ * attach event handler * /});' – wOxxOm

+0

実際、私は間違っていました。 .load()はHTMLからコンテンツを取得しないようです。私は負荷を警告()しようとすると、HTMLコンテンツが表示されるはずですが、[オブジェクト] [オブジェクト]が表示されます。 – SoMeGoD

答えて

0

  1. 私はHTMLを引っ張られた場合には、単に確認するために、実際のアペンド前に警告して)(私が手を作成し"web_accessible_resources": ["menu.html"]
  2. を使用してマニフェストに私のファイル「menu.html」をホワイトリストに登録する必要がありました。 chrome.extension.getURLを使用してファイルを検索していなかったため、get()が返されました[オブジェクト] [オブジェクト] HTMLの代わりにchrome.extension.getURL('menu.html')すべてが問題ありませんでした
  3. 以前の.append()と.load()に問題がありましたので、$.get(chrome.extension.getURL('menu.html'), function(data2) {$(data2).appendTo('body');});を使ってみて、ファイルを取得できました。働いていなかったすべてのjqueryのは、getのコールバックの内側に移動されたので、すべてが今指しているため
関連する問題