Finns det någon motsvarighet i Javascript till variabeln __FILE__ i PHP?
Ganska enkelt, jag har ett JS-skript som ingår på många olika webbplatser och behöver ha parametrar skickade till sig.
Det skulle vara användbart om dessa kunde skickas via URL:en, t.ex:
<script type="text/javascript"
src="http://path.to/script.js?var1=something&var2=somethingelse"></script>
Ja, du kan fortfarande förifylla variabler, i en separat skript-tagg, men det är lite rörigt och mindre lätt att dela med sig av:
<script type="text/javascript">var1=something; var2=somethingelse</script>
<script type="text/javascript" src="http://path.to/script.js"></script>
Svar #1
Japp. Extra fördel: jag omvandlar frågesträngsparametrarna till en mer användbar JavaScript-hash.
HTML :
<script src="script.js?var1=something&var2=somethingelse" type="text/javascript"></script>
script.js:
var scriptSource = (function() {
var scripts = document.getElementsByTagName('script');
return scripts[scripts.length - 1].src
}());
var params = parseQueryString(scriptSource.split('?')[1]);
params.var1; // 'something'
params.var2; // 'somethingelse'
// Utility function to convert "a=b&c=d" into { a:'b', c:'d' }
function parseQueryString(queryString) {
var params = {};
if (queryString) {
var keyValues = queryString.split('&');
for (var i=0; i < keyValues.length; i++) {
var pair = keyValues[i].split('=');
params[pair[0]] = pair[1];
}
}
return params;
}
Svar #2
Denna metod bör endast användas om variablerna skulle avgöra vilken JavaScript-kod som laddades (t.ex. med förfrågan som bearbetas av PHP, dynamiskt bygger JS-filen).
Om du vill överföra information till JavaScript-kod, använd funktioner eller variabler i koden efter att den har laddats.
