Передать переменную в файл JS

1

Несмотря на то, что этот вопрос был задан и ответил ранее, в том числе на этом веб-сайте, мне не удается решить мою проблему.

Я использую Masterpages и файлы Javascript... и все теперь, как "сложные" masterpages получают относительные пути...

Ну, я использую png fix, называемый: unit Png Fix (неплохо быть честным... даже лучше, чем JQuery), и это исправление должно использовать небольшое изображение под названием clear.gif. Путь к файлу clear.gif хранится внутри переменной, которая находится в файле JavaScript.

Однако, поскольку я использую Masterpages, я не могу просто открыть JS файл и написать статический путь... подумал я.

Я пытался: удалить переменную из файла JS и объявить ее снаружи, но в блоке sabe Script. Вот так:

 <!--[if lt IE 7]>
        <script src="<%= ResolveClientUrl("~/masterpages/js/unitpngfix.js") %>" type="text/javascript">
            var clear="<%= ResolveClientUrl("~/masterpages/img/clear.gif") %>";
        </script>
<![endif]-->

Я даже пытался объявить его в Главе сайта. (Я помещаю свои JS файлы в нижней части моей страницы, чтобы ускорить их).

К сожалению, мои решения не сработали... вот почему я задаю этот вопрос здесь.: (

Теги:

2 ответа

3
Лучший ответ

Вы не можете объявить src и контент в одном элементе.

из определение элемента script на сайте W3C:

Если значение src имеет значение URI, пользовательские агенты должны игнорировать содержимое элемента и извлекать script через URI

Попробуйте выделить их:

<script type="text/javascript">
    var clear="<%= ResolveClientUrl("~/masterpages/img/clear.gif") %>";
</script>
<script src="<%= ResolveClientUrl("~/masterpages/js/unitpngfix.js") %>" type="text/javascript"></script>
  • 0
    Ага! Это было это ... спасибо. Похоже, я был близко ... но не близко.
0

A) вы можете объявить как атрибут src для ресурса Javascript, так и информацию в блоке. Вам нужно будет сделать объявление в своем собственном блоке до блока src

B) То, как я выполняю передачу URL-адресов, сгенерированных кодом, в Javascript, находится в моем представлении/главной странице. У меня есть блок script, который объявляет массив url, прикрепленный к окну, таким образом, там нет нечетных конфликтов дорога с другими сценариями:

<script type="text/javascript">
   Window.url = {
       clearImage: '<%= ResolveClientUrl("~/masterpages/img/clear.gif") %>',
       otherUrl: '<%=ResolveClientUrl("~/other/file/...")%>'
   };
</script>

то в ваших реальных файлах script вы можете получить его через

var img = window.url.clearImage;

Он привязывает script к этому конкретному виду, но я не вижу в этом ничего страшного.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню