Передайте Вар JavaScript через атрибут SRC

Вам следует проверить этот вопрос.

Я делаю это так:

try {
            String pkg = mContext.getPackageName();
            mVersionNumber = mContext.getPackageManager().getPackageInfo(pkg, 0).versionName;
        } catch (NameNotFoundException e) {
            mVersionNumber = "?";
        }

14
задан Robinicks 19 June 2009 в 11:12
поделиться

5 ответов

<script>
var config=true;
</script>
<script src="myscript.js"></script>

Вы не можете передавать переменные в JS так, как вы пытались. Тег SCRIPT не создает объект Window (который имеет строку запроса), и это не код на стороне сервера.

17
ответ дан 1 December 2019 в 08:53
поделиться

Да, можете, но вам нужно знать точное имя файла сценария в сценарии:

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 , где он работает.

5
ответ дан 1 December 2019 в 08:53
поделиться

Возможно, вы видели это, но на самом деле файл JS предварительно обрабатывается на стороне сервера с использованием PHP или другого языка. Код на стороне сервера будет печатать / отображать javascript с установленными переменными. Я видел раньше, как рекламный сервис со сценарием делает это, и это заставило меня задуматься, можно ли это сделать с помощью простых js, но это невозможно.

4
ответ дан 1 December 2019 в 08:53
поделиться

Вам нужно использовать 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!

4
ответ дан 1 December 2019 в 08:53
поделиться

Ваш сценарий, однако, может найти свой собственный узел сценария, изучить атрибут 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;
    } 
  }
1
ответ дан 1 December 2019 в 08:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: