How do I link a JavaScript file to a HTML file?
First you need to download JQuery library from http://jquery.com/ then
load the jquery library the following way within your html head tags
then you can test whether the jquery is working by coding your jquery code after the jquery loading script
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<!--LINK JQUERY-->
<script type="text/javascript" src="jquery-3.3.1.js"></script>
<!--PERSONAL SCRIPT JavaScript-->
<script type="text/javascript">
$(function(){
alert("My First Jquery Test");
});
</script>
</head>
<body><!-- Your web--></body>
</html>
If you want to use your jquery scripts file seperately you must define the external .js file this way after the jquery library loading.
<script type="text/javascript" src="jquery-3.3.1.js"></script>
<script src="js/YourExternalJQueryScripts.js"></script>
Test in real time
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script><!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head>
<!--LINK JQUERY--><script type="text/javascript" src="jquery-3.3.1.js"></script><!--PERSONAL SCRIPT JavaScript--><script type="text/javascript"> $(function(){ alert("My First Jquery Test"); });</script>
</head><body><!-- Your web--></body></html>
Capturing load event on LINK
For CSS stylesheets (not LINK elements in general) i'm using manual interval, by poking it's rules length. It works crossbrowser (AFAIT).
try {
if ( cssStylesheet.sheet && cssStylesheet.sheet.cssRules.length > 0 )
cssLoaded = 1;
else if ( cssStylesheet.styleSheet && cssStylesheet.styleSheet.cssText.length > 0 )
cssLoaded = 1;
else if ( cssStylesheet.innerHTML && cssStylesheet.innerHTML.length > 0 )
cssLoaded = 1;
}
catch(ex){}
In code above, the cssStylesheet is DOMElement.
Inserting script and link tag inside the header tag
HTML:
<head>
<script src="Scripts/Generate.js"></script>
</head>
Scripts/Generate.js:
if(!document.getElementById('id1')) {
var script = document.createElement('script');
script.id = 'id1';
script.src = 'Scripts/Script1.js';
document.head.appendChild(script);
}
if(!document.getElementById('id2')) {
var link = document.createElement('link');
link.id = 'id2';
link.rel = 'stylesheet';
link.href = 'CSS/Css1.cs';
document.head.appendChild(link);
}
Afterwards, the HTML is:
<head>
<script src="Scripts/Generate.js"></script>
<script id="id1" src="Scripts/Script1.js"></script>
<link id="id2" rel="stylesheet" href="CSS/Css1.cs">
</head>
How to load javascript code to an html file at runtime?
Paste this within onclick of that button (correct the url in 3rd line):
var script = document.createElement("script");
script.setAttribute("type", "text/javascript");
script.setAttribute("src", "url to the script file here");
document.getElementsByTagName("head")[0].appendChild(script);
That script will start being downloaded immediately after line 4 is executed, and as soon as it's downloaded it'll execute or otherwise be usable.
Dynamically load JS inside JS
jQuery's $.getScript()
is buggy sometimes, so I use my own implementation of it like:
jQuery.loadScript = function (url, callback) {
jQuery.ajax({
url: url,
dataType: 'script',
success: callback,
async: true
});
}
and use it like:
if (typeof someObject == 'undefined') $.loadScript('url_to_someScript.js', function(){
//Stuff to do after someScript has loaded
});
Related Topics
Do You Need to Close Meta and Link Tags in HTML
Valid Order for Attributes of Input Type Tag
How Does Justify-Items Work on Display:Block Elements
Gmail Displaying Gaps Between Images
Number Input - Always Show Spin Buttons
Angular2 Without Hash in The Url
Change Color of Text Responding to Background Color
How to Get The HTML5 Audio's Duration Time
Background-Image CSS Inside an HTML Email - Gmail Does Not Support
Img's Max-Height Not Respecting Parent's Dimensions
Word Wrap a Link So It Doesn't Overflow Its Parent Div Width
Angular4 - Scrolling to Anchor
Multiple Select in Safari iOS 7
CSS/HTML: What Is The Correct Way to Make Text Italic
Chrome/Safari Display Border Around Image