@@ -44,18 +44,37 @@ function reLoadSphinxTabs() {
44
44
// HACK: please, improve this code to call the content of "tab.js" without creating a script element
45
45
46
46
// Get the URL from the current generated page since it's not always the same
47
- var src = $('script[src$="sphinx_tabs/tabs.js"]')[0].src;
47
+ var older_tabs_src = $('script[src$="sphinx_tabs/tabs.js"]');
48
+ if (older_tabs_src.length != 0) {
49
+ // sphinx-tabs < 2
50
+ older_tabs_src = older_tabs_src[0].older_tabs_src
51
+ script = d.createElement('script');
52
+ script.type = 'text/javascript';
53
+ script.onload = function(){
54
+ // remote script has loaded
55
+ };
56
+ script.older_tabs_src = older_tabs_src;
57
+ d.getElementsByTagName('head')[0].appendChild(script);
48
58
49
- script = d.createElement('script');
50
- script.type = 'text/javascript';
51
- script.onload = function(){
52
- // remote script has loaded
53
- };
54
- script.src = src;
55
- d.getElementsByTagName('head')[0].appendChild(script);
59
+ // Once the script has been executed, we remove it from the DOM
60
+ script.parentNode.removeChild(script);
61
+ }
62
+ var newer_tabs_src = $('script[src$="_static/tabs.js"]');
63
+ if (newer_tabs_src.length != 0) {
64
+ // sphinx-tabs > 2
65
+ // Borrowed from
66
+ // https://github.com/executablebooks/sphinx-tabs/blob/0f3cbbe/sphinx_tabs/static/tabs.js#L8-L17
67
+ var allTabs = document.querySelectorAll('.sphinx-tabs-tab');
68
+ var tabLists = document.querySelectorAll('[role="tablist"]');
69
+ allTabs.forEach(tab => {
70
+ tab.addEventListener("click", changeTabs);
71
+ });
72
+
73
+ tabLists.forEach(tabList => {
74
+ tabList.addEventListener("keydown", keyTabs);
75
+ });
76
+ }
56
77
57
- // Once the script has been executed, we remove it from the DOM
58
- script.parentNode.removeChild(script);
59
78
}(document));
60
79
};
61
80
};
0 commit comments