Define a method like below to fetch all key values from a url:
function getUrlVars(url)
{
var vars = [], hash;
if(url == undefined || url.indexOf('?') == -1)
return vars;
var hashes = url.slice(url.indexOf('?') + 1).split('&');
for(var i = 0; i < hashes.length; i++)
{
hash = hashes[i].split('=');
vars.push({key : hash[0] , value : hash[1]});
}
return vars;
}
this method returns an object array that contains all available Key/Values of the url.
finally you can get the src from any script tag and get all available Key/Values like this:
$("script").each(function(){
if($(this).attr("src") != undefined){
console.log($(this).attr("src") + ":");
console.log(getUrlVars($(this).attr("src")));
}
});
$(document).ready(function(){
function getUrlVars(url)
{
var vars = [], hash;
if(url == undefined || url.indexOf('?') == -1)
return vars;
var hashes = url.slice(url.indexOf('?') + 1).split('&');
for(var i = 0; i < hashes.length; i++)
{
hash = hashes[i].split('=');
vars.push({key : hash[0] , value : hash[1]});
}
return vars;
}
$("script").each(function(){
if($(this).attr("src") != undefined){
console.log($(this).attr("src") + ":");
console.log(getUrlVars($(this).attr("src")));
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="/js/example/test.js?count=2321&customKey=1233&customKey2=sdffds"></script>
<script src="/js/example/test1.js?count2=2321&Key2=sdffds"></script>
<script src="/js/example/test2.js?count2=2321&key1=1233"></script>
You can also use the following method to get a specific key from any url:
function getParameterByName(name, url) {
if (!url) url = window.location.href;
name = name.replace(/[\[\]]/g, "\\$&");
var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
results = regex.exec(url);
if (!results) return null;
if (!results[2]) return '';
return decodeURIComponent(results[2].replace(/\+/g, " "));
}
and get the value of a key like this:
getParameterByName("count", $("script[src*='test.js']").attr("src"))
$(document).ready(function(){
function getParameterByName(name, url) {
if (!url) url = window.location.href;
name = name.replace(/[\[\]]/g, "\\$&");
var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
results = regex.exec(url);
if (!results) return null;
if (!results[2]) return '';
return decodeURIComponent(results[2].replace(/\+/g, " "));
}
console.log( getParameterByName("count", $("script[src*='test.js']").attr("src")));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="/js/example/test.js?count=2321"></script>
Edit (Detect current script): There are many ways to detect the current script tag that you can find HERE, but I think the most accurate way is to define a method in each of your scripts with its name on it and loop over all scripts to find the script you want:
function isMe(scriptElem){
return scriptElem.getAttribute('src') === "Your Current Script Src";
}
var me = null;
var scripts = document.getElementsByTagName("script")
for (var i = 0; i < scripts.length; ++i) {
if( isMe(scripts[i])){
me = scripts[i];
}
}
console.log( getParameterByName("count", $(me).attr("src")));