Вам следует проверить этот вопрос.
Я делаю это так:
try {
String pkg = mContext.getPackageName();
mVersionNumber = mContext.getPackageManager().getPackageInfo(pkg, 0).versionName;
} catch (NameNotFoundException e) {
mVersionNumber = "?";
}
<script>
var config=true;
</script>
<script src="myscript.js"></script>
Вы не можете передавать переменные в JS так, как вы пытались. Тег SCRIPT не создает объект Window (который имеет строку запроса), и это не код на стороне сервера.
Да, можете, но вам нужно знать точное имя файла сценария в сценарии:
var libFileName = 'myscript.js',
scripts = document.head.getElementsByTagName("script"),
i, j, src, parts, basePath, options = {};
for (i = 0; i < scripts.length; i++) {
src = scripts[i].src;
if (src.indexOf(libFileName) != -1) {
parts = src.split('?');
basePath = parts[0].replace(libFileName, '');
if (parts[1]) {
var opt = parts[1].split('&');
for (j = opt.length-1; j >= 0; --j) {
var pair = opt[j].split('=');
options[pair[0]] = pair[1];
}
}
break;
}
}
Теперь у вас есть переменная 'options', в которую переданы аргументы. Я не тестировал его, я немного изменил его из http://code.google.com/p/canvas-text/source/browse/trunk/canvas.text.js , где он работает.
Возможно, вы видели это, но на самом деле файл JS предварительно обрабатывается на стороне сервера с использованием PHP или другого языка. Код на стороне сервера будет печатать / отображать javascript с установленными переменными. Я видел раньше, как рекламный сервис со сценарием делает это, и это заставило меня задуматься, можно ли это сделать с помощью простых js, но это невозможно.
Вам нужно использовать Javascript, чтобы найти атрибут src скрипта и проанализировать переменные после символа '?'. При использовании фреймворка Prototype.js это выглядит примерно так:
var js = /myscript\.js(\?.*)?$/; // regex to match .js
var jsfile = $$('head script[src]').findAll(function(s) {
return s.src.match(js);
}).each(function(s) {
var path = s.src.replace(js, ''),
includes = s.src.match(/\?.*([a-z,]*)/);
config = (includes ? includes[1].split('=');
alert(config[1]); // should alert "true" ??
});
Мои навыки Javascript / RegEx устарели, но это общая идея. Скопировано прямо из файла scriptaculous.js!
Ваш сценарий, однако, может найти свой собственный узел сценария, изучить атрибут src и извлечь любую информацию, которая вам нравится.
var scripts = document.getElementsByTagName ('script');
for (var s, i = scripts.length; i && (s = scripts[--i]);) {
if ((s = s.getAttribute ('src')) && (s = s.match (/^(.*)myscript.js(\?\s*(.+))?\s*/))) {
alert ("Parameter string : '" + s[3] + "'");
break;
}
}