我有一个扩展,它有一个包含大型 jstree 的 popup.html。我想做的是:用户在浏览器窗口打开后第一次单击弹出窗口时,会获取用于填充 jstree 的数据。弹出窗口的后续单击将保留生成的 html,因此不再需要生成树。
换句话说,我只想生成一次 jstree 并让弹出窗口将其 html 的内容保存在内存中。这是可行的吗?
这是 popup.js 代码:
$(document).ready(function() {
var backgroundPage = chrome.extension.getBackgroundPage();
function logIt(text) {
backgroundPage.console.log(text);
}
function buildUI(feedData) {
$('#jstree').jstree({
'core': {
'animation': 0
},
'json_data': feedData,
'themes': {
'theme': 'classic',
'dots': false,
'icons': true
},
'types': {
'valid_children': [ 'folder' ],
'types': {
'folder': {
'valid_children': [ 'file' ],
'max_depth': 1
},
'file' : {
'valid_children': [ 'none' ],
'icon': { 'image': 'images/file.png' }
}
}
},
'plugins': [
'json_data',
'themes',
'sort',
'types',
'search'
]
})
.on('click', '.jstree-leaf', function() {
logIt($(this).text());
});
}
chrome.extension.sendRequest({'action': 'fetchFeed'}, function(response) {
var output = JSON.parse(response);
buildUI(output.data);
});
});