Простой JavaScript appendChild не работает - PullRequest
0 голосов
/ 06 марта 2011

Это очень «стандартный» фрагмент кода JavaScript (я видел его на тысячах примеров), но он не работает для меня:

<head>
<title>Temp</title>
<script type="text/javascript">
    function start() {
        var newScript = document.createElement('script');
        newScript.type = "text/javascript";
        newScript.src = "toBeIncluded.js";  // THIS ONE DOES NOT WORK
        document.body.appendChild(newScript);
        // alert(newScript.contentText);
    }
</script>
</head>

<body onload='start()'>
</body>
</html>

На самом деле я не получаю никакой ошибки, и тег фактически добавляется - к сожалению, он полностью пуст (я проверяю его с помощью строки с комментариями). Обратите внимание, что файл «toBeIncluded.js» существует, не является пустым и находится в том же локальном каталоге этого HTML-кода (я запускаю все локально на моем ПК).

Пожалуйста, помогите, я перепробовал множество возможных вариантов (изменить каталоги, включить полный путь, переместить код в раздел "body", ...), но безуспешно

1 Ответ

0 голосов
/ 06 марта 2011

Я бы рекомендовал установить расширение Firebug для Firefox.Существует также скрипт Firebug Lite для использования в других браузерах.Они работают по-разному, но имеют схожие особенности.Как уже упоминалось, вы можете получить выгоду от просмотра информации о транзакциях HTTP.В Firebug это доступно на панели «Net».Если браузер пытается загрузить сценарий, вы должны увидеть элемент на панели «Сеть».(Убедитесь, что в параметрах панели «Сеть» выбрано «Все» или «Сценарий».)

Если вы видите запрос сценария в списке, то также должен быть указан результат запроса.Например, если это «404 Not Found», то URL-адрес не был разрешен должным образом.Если это «200 OK» или «304 Not Modified», то запрос был успешным.Если элемент отображает небольшую диаграмму вращения, он все еще пытается подключиться к целевому серверу.

Если на панели «Сеть» указано, что запрос выполнен успешно, перейдите на панель «HTML».Панель HTML показывает текущее состояние объекта документа, поэтому, если ваша функция запуска выполнена правильно, вы увидите элемент «script» как дочерний элемент элемента body.

Если элемент scriptуспешно добавлено, но HTTP-запрос не сделан, поэтому у вас могут быть проблемы с настройками безопасности браузера.Например, если запрос пересекает границу протоколов HTTP / HTTPS или http / file, браузер может молча отклонить его.

Попробуйте открыть новое окно браузера и запросить URL-адрес сценария напрямую.Это должно помочь исключить проблемы с ошибкой URL-адреса или соединения с сервером.

...