Ich weiß, es ist ein sehr alter Thread, aber das könnte auch helfen, wenn jemand hierher kommt, sobald er nach einer Lösung sucht.
Grundsätzlich habe ich das document.currentScript verwendet, um das Element abzurufen, von dem mein Code ausgeführt wird, und ich filtere nach dem Namen der gesuchten Variablen. Ich habe es getan, um currentScript mit einer Methode namens "get" zu erweitern, damit wir den Wert in diesem Skript abrufen können, indem wir Folgendes verwenden:
document.currentScript.get('get_variable_name');
Auf diese Weise können wir Standardvariablen verwenden, um die Variablen abzurufen, ohne spezielle Attribute hinzuzufügen.
Dies ist der endgültige Code
document.currentScript.get = function(variable) {
if(variable=(new RegExp('[?&]'+encodeURIComponent(variable)+'=([^&]*)')).exec(this.src))
return decodeURIComponent(variable[1]);
};
Ich habe den IE vergessen :) Es könnte nicht einfacher sein ... Nun, ich habe nicht erwähnt, dass document.currentScript eine HTML5-Eigenschaft ist. Es wurde nicht für verschiedene Versionen von IE aufgenommen (ich habe bis IE11 getestet und es war noch nicht da). Aus Gründen der IE-Kompatibilität habe ich diesen Teil dem Code hinzugefügt:
document.currentScript = document.currentScript || (function() {
var scripts = document.getElementsByTagName('script');
return scripts[scripts.length - 1];
})();
Wir definieren hier einen alternativen Code für den IE, der das aktuelle Skriptobjekt zurückgibt, das in der Lösung zum Extrahieren von Parametern aus der src-Eigenschaft erforderlich ist. Dies ist nicht die perfekte Lösung für IE, da es einige Einschränkungen gibt. Wenn das Skript asynchron geladen wird. Neuere Browser sollten die Eigenschaft ".currentScript" enthalten.
Ich hoffe, es hilft.