Ich erstelle eine Chrome-Erweiterung, um ein benutzerdefiniertes HTML-Menü mit Content Script an eine Seite anzuhängen. Der Inhalt funktioniert gut und das Menü funktioniert perfekt, aber ich bin derzeit die HTML aus einem var Laden, wie folgt aus:jQuery zum Ausführen auf Appended Loaded 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>';
und dann auf die Seite wie folgt anhängen:
$("body").append(gacMenu);
Seit Ich erstelle immer noch das Menü selbst, die Bearbeitung des HTML aus der var ist irgendwie nervig, und ich habe versucht, einen getrennten HTML mit nur dem Menücode zu erstellen und dann LOAD und APPEND diese Datei an die Seite mit diesem Code:
$(function() {
$('body').append($('body').load('menu.html'));
});
Der Inhalt wird geladen, aber das Problem ist, dass andere jquery-Funktionen wie .click() und .change() nicht mit dem geladenen & Angehängten Inhalt arbeiten, nur wenn es aus der Var geladen wird.
Im Arbeitsszenario befinden sich beide var mit HTML- und jquery-Funktionen in derselben JS-Datei. Hier ist ein Code, der funktioniert, wenn HTML aus var geladen wird, aber das funktioniert nicht, wenn HTML wird aus der Datei geladen:
$("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
});
Es tut mir leid, wenn dies eine lame Frage, aber ich bin auf Anfang Phasen der Programmierung. Was ich vermisse?
Danke für das Zeigen. Ich habe meine Frage bearbeitet. Alles befindet sich in der gleichen .js-Datei namens menu.js, aber wenn Sie versuchen, den HTML-Code aus menu.html anzuhängen, scheint der Code von menu.js nicht zu funktionieren. – SoMeGoD
Ich denke, das liegt daran, dass 'load' asynchron ist, also sollten Sie diesen Code in eine Funktion für' complete' setzen: 'load ('menu.html', function() {/ * attach event handlers * /});' – wOxxOm
Eigentlich lag ich falsch. Es scheint, dass die .load() den Inhalt nicht aus dem HTML erhält. Wenn ich versuche, die Last zu alarmieren(), zeigt es nur [object] [object] an, wenn ich denke, dass es den HTML-Inhalt anzeigen soll, oder? – SoMeGoD