Может ли скрипт-тег появляться перед заголовком и метатегами?

Плагировать себя из предварительного ответа , чтобы сделать это без риска безопасности, связанного с eval:

expandPath() {
  local path
  local -a pathElements resultPathElements
  IFS=':' read -r -a pathElements <<<"$1"
  : "${pathElements[@]}"
  for path in "${pathElements[@]}"; do
    : "$path"
    case $path in
      "~+"/*)
        path=$PWD/${path#"~+/"}
        ;;
      "~-"/*)
        path=$OLDPWD/${path#"~-/"}
        ;;
      "~"/*)
        path=$HOME/${path#"~/"}
        ;;
      "~"*)
        username=${path%%/*}
        username=${username#"~"}
        IFS=: read _ _ _ _ _ homedir _ < <(getent passwd "$username")
        if [[ $path = */* ]]; then
          path=${homedir}/${path#*/}
        else
          path=$homedir
        fi
        ;;
    esac
    resultPathElements+=( "$path" )
  done
  local result
  printf -v result '%s:' "${resultPathElements[@]}"
  printf '%s\n' "${result%:}"
}

... используется как ...

path=$(expandPath '~/hello')

Альтернативно, более простой подход, который использует eval тщательно:

expandPath() {
  case $1 in
    ~[+-]*)
      local content content_q
      printf -v content_q '%q' "${1:2}"
      eval "content=${1:0:2}${content_q}"
      printf '%s\n' "$content"
      ;;
    ~*)
      local content content_q
      printf -v content_q '%q' "${1:1}"
      eval "content=~${content_q}"
      printf '%s\n' "$content"
      ;;
    *)
      printf '%s\n' "$1"
      ;;
  esac
}

0
задан alancc 1 March 2019 в 02:22
поделиться

3 ответа

Не будет никаких побочных эффектов, но и улучшений тоже не будет. Код GA должен идти перед CSS и тегами сценариев, поскольку их загрузка может блокировать браузер и задерживать загрузку Google Script и (что более важно) задерживать запуск очереди команд ga. Мета-теги на самом деле не влияют на обработку, поэтому не имеет значения, предшествуют ли они коду, но браузеры не очень разборчивы, так как в заголовке заголовка и в мета-месте отображаются слова

.
0
ответ дан Eike Pierstorff 1 March 2019 в 02:22
поделиться

Насколько мне известно, вы можете использовать теги сценария перед тегами заголовка, если вы хотите расставить приоритеты при выполнении сценария, используйте его сразу после начала тегов заголовка.

0
ответ дан Suhas 1 March 2019 в 02:22
поделиться

Единственное ограничение, с которым вы сталкиваетесь, заключается в том, что <meta charset должно быть и должно быть полностью сериализовано в первые 1024 байта документа .

Размещение элементов скрипта до того, как оно может нарушить это ограничение.

0
ответ дан Quentin 1 March 2019 в 02:22
поделиться
Другие вопросы по тегам:

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