Skip to content

Commit

Permalink
Add functionality to open external links in jupyter notebooks in new …
Browse files Browse the repository at this point in the history
…tab (alshedivat#2233)

See alshedivat#2230

---------

Co-authored-by: Scherrmann <scherrmann@bwl.uni-muenchen.de>
  • Loading branch information
mscherrmann and Scherrmann committed Feb 27, 2024
1 parent cbd7c6a commit ededd81
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 0 deletions.
3 changes: 3 additions & 0 deletions _includes/scripts/misc.liquid
Original file line number Diff line number Diff line change
Expand Up @@ -31,3 +31,6 @@
<script src="{{ '/assets/js/no_defer.js' | relative_url | bust_file_cache }}"></script>
<script defer src="{{ '/assets/js/common.js' | relative_url | bust_file_cache }}"></script>
<script defer src="{{ '/assets/js/copy_code.js' | relative_url | bust_file_cache }}" type="text/javascript"></script>

<!-- Jupyter Open External Links New Tab -->
<script defer src="{{ '/assets/js/jupyter_new_tab.js' | relative_url | bust_file_cache }}"></script>
18 changes: 18 additions & 0 deletions assets/js/jupyter_new_tab.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
$(document).ready(function () {
// Let external links in jupyter notebooks open in new tab
let jupyterNotebooks = $(".jupyter-notebook-iframe-container");
jupyterNotebooks.each(function () {
let iframeBody = $(this).find("iframe").get(0).contentWindow.document.body;
// Get all <a> elements in the bodyElement
let links = $(iframeBody).find("a");

// Loop through each <a> element
links.each(function () {
// Check if the <a> element has an 'href' attribute
if ($(this).attr("href")) {
// Set the 'target' attribute to '_blank' to open the link in a new tab/window
$(this).attr("target", "_blank");
}
});
});
});

0 comments on commit ededd81

Please sign in to comment.