Проблемы с тегом "src" - PullRequest
3 голосов
/ 13 марта 2012

У меня есть скрипт, встроенный в страницу, который выглядит следующим образом:

<script type="text/javascript">

function fireNlPopup()
{
    setOpacity(0);
    centre();
    document.getElementById("NlPopup").style.display = "block";
    fadeInNlPopup();
}

//Other functions here

</script>

при этом всплывающее окно выглядит следующим образом:

<div id='NlPopup' name='NlPopup' class='nl'>
<table width='380' cellpadding='0' cellspacing='0' border='0'>
<tr>
<td><img height='23' width='356' src='images/x11_title.gif'></td>
<td><a href='javascript:fadeOutNlPopup();'><img height='23' width='24' src='images/x11_close.gif' border='0'></a></td>
</tr>
<tr><td colspan='2' style='background: url("images/x11_body.gif") no-repeat top left; width: 380px; height: 277px;'>
Your next lecture is X, with Y, at Z.
</td></tr>
</table>
</div>

и, наконец, все это вызывается кнопкой:

<button type="button" style="button" onClick="fireNlPopup()">Next Lecture</button>

Проблема в том, когда я пытаюсь поставить скрипт в другой файл. У меня есть файл, называемый popup.js, с точно таким же кодом (поскольку он работает, когда он встроен в мой файл php, я предположил, что если я скопирую его, поверните его в файл js и назвал его, он будет работать.

Когда я вызываю файл js, я использую:

<script type="text/javascript" src="popup.js">
</script>

и затем весь контент между тегами скрипта попадает в popup.js. Однако, несмотря на то, что код работает нормально, когда он встроен, во-вторых, я вынимаю его и помещаю в собственный файл, он не работает. Я проверил дважды и трижды, мой код работает нормально, синтаксис правильно, и поэтому я пропустил его фрагмент кода. по какой-то причине он просто перестает работать. Я неправильно называю файл? Это на моем сервере, я тоже это проверил = P

Я, наверное, очень глуп, но любая помощь будет очень полезна. Я застрял на этом целую вечность.

Спасибо =)

РЕДАКТИРОВАТЬ: для тех, кто хочет посмотреть, страница вживую здесь: http://oliverlea.com/3yp/tt.php

Кроме того, используя Chrome для просмотра исходного кода, файл загружается как ссылка.

Спасибо за помощь =)

РЕДАКТИРОВАТЬ 2:

Во-первых, да, тег script находится в заголовке моего файла.

Во-вторых: Итак, независимо от того, использую я src = "popup.js", "/popup.js" или "./popup.js", я ничего не получаю. URL-адрес всегда загружается в средстве просмотра исходного кода Chrome, и даже при изменении прав доступа к файлу на 0755 он все равно не имеет значения.

Я совершенно сбит с толку этим.

Ответы [ 4 ]

2 голосов
/ 13 марта 2012

Сценарий должен быть проанализирован, прежде чем на него можно будет сослаться.Это классический случай состояния гонки.Убедитесь, что скрипт находится в <head>, если вы собираетесь ссылаться на него в DOM.Также убедитесь, что ваш путь правильный в вашем src="/path/to/popup.js"

1 голос
/ 13 марта 2012

Это проблема кодировки с файлом popup.js. Пожалуйста, смотрите ниже для моего анализа. Некоторые браузеры "исправляют" это для вас, а другие нет Решение состоит в том, чтобы сохранить файл popup.js в стандартной кодировке, на компьютере с Windows попробуйте сохранить его в блокноте.

РЕДАКТИРОВАТЬ: Добавлено резюме (выше). Полный анализ вашей проблемы ниже:

Ваша страница работает в IE9, но не в Chrome или Firefox. Кроме того, я скопировал страницу и ваш CSS и JS (но не изображения) в локальный проект, и он работает там и у меня (даже в Chrome и Firefox).

Затем я загрузил вашу живую страницу в FireFox и открыл FireBug, и когда я нажал «Следующая лекция», консоль показала мне, что FireNlPopup не определен.

При дальнейшем рассмотрении я зашел посмотреть исходный код в FireFox на вашей живой странице и нажал «popup.js». Результат выглядел так: popup.js source view in firefox

Похоже, вы используете какой-то текстовый редактор для создания файла popup.js, который кодирует в странном формате; используйте стандартный Блокнот или Блокнот ++ (т.е. не Wordpad) или используйте Eclipse или Visual Studio для сохранения файла popup.js, и все будет хорошо.

0 голосов
/ 23 июня 2014

У меня была другая причина, но те же симптомы.По сути, я не установил соединение, что файл сценария на сервере нуждается в дополнении к таблице маршрутизации, чтобы получить его.Оглядываясь назад, немного глупо, но я могу сэкономить кого-то еще.

FWIW, добавил я (используя node.js);

// script routes
app.get('/scripts/:script',                  script_server.serve);

и в script_server.js

exports.serve = function(req, res){
  res.sendfile(req.param('script'));
};
0 голосов
/ 13 марта 2012

Попробуйте использовать:

<script type="text/javascript" src="/popup.js"></script>

или, если это не сработает:

<script type="text/javascript" src="./popup.js"></script>

Возможно, он не находит путь, но с помощью консоли Firebug или Chrome можносказать вам.

...