Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > Не подключается скрипт


Автор: prog90 6.6.2009, 14:43
Здравствуйте,
У меня не подключается файл с javscript'ом к html-странице. В конфиге сервера строчка про джаваскрипт есть. Код файла не содержит html-тегов. Вот текст подключения файла <script type="text/javascript" src="addressBook.js"></script>
В чем может быть дело?

Автор: Dobermann 6.6.2009, 14:58
В той же папке скрипт?!

Автор: prog90 6.6.2009, 18:24
Да, в той же. все файлы в одной папке проекта guestbook, которая лежит на локальном сервере в папке www

Автор: bars80080 6.6.2009, 18:42
а как выяснено, что файл не подключён?

по факту, бывает такая проблема, что в случае одной ошибки скриптов, все остальные тоже перестают работать. сколько у вас этих подключаемых файлов? нет ли кода в самой странице? попробуйте отключив всё, подключая поочереди проверить, не появляется ли ошибка от какого-то файла

если файл один, то попробуйте перенести всё содержимое непосредственно в страницу. если будет работать, то точно проблемы с подключением

Автор: ksnk 6.6.2009, 18:44
Цитата(prog90 @  6.6.2009,  14:43 Найти цитируемый пост)
В конфиге сервера строчка про джаваскрипт есть

Про это поподробнее, пожалуйста... Мне казалось, что серверу глубоко до лампочки всякий там JavaScript...

На этой страничке, к примеру, javascript схожим с описанным способом исправно подключается  smile Ссылка на пример, кусок кода, или еще какая дополнительная информация имеется?


Автор: prog90 6.6.2009, 22:47
Вот файл страницы
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" »
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" »
  xml:lang="en" lang="en">
<head>
  <title>Ajax Address Book</title>
  <meta http-equiv="content-type" content="text/html; »
    charset=iso-8859-1" />

  <meta http-equiv="Content-Language" content="en-us" />
  <script type="text/javascript" src="XHConn.js"></script>
  <script type="text/javascript" src="addressBook.js"></script>
</head>
<body>
  <h1>Simple Ajax Address Book</h1>

  <form action="getAddress.php" method="POST">
    <fieldset>
      <legend>Please Choose a Person</legend>
      <select id="person" name="person">
        <option value="">Choose Someone</option>

        <option value="1">Bob Smith</option>
        <option value="2">Janet Jones</option>
      </select>
      <input type="submit" id="submit" name="submit" »
        value="Get the Address" />
    </fieldset>

  </form>
  <pre id="address"></pre>
</body>
</html>


а вот файл прикрепленный со скриптом

var addressBook = {
  myConn:      false, // the XMLHttpRequest
  body:        false, // the body element
  target:      false, // the target container
  loader:      false, // the loader
  init:        function(controlId, sbmtBtnId, targetId){
    /* init() takes three arguments:
       * the id of the controller (select)
       * the id of the submit button
       * the id of the target container */
    // test for methods & elements
    if(!document.getElementById ||
       !document.getElementsByTagName ||
       !document.getElementById(controlId) ||
       !document.getElementById(sbmtBtnId)  ||
       !document.getElementById(targetId)) return;
    // set and test XHConn, quitting silently if it fails
    addressBook.myConn = new XHConn();
    if(!addressBook.myConn) return;
    // get the body
    addressBook.body = document.getElementsByTagName('body')[0];
    // get the controller
    var control = document.getElementById(controlId);
    // get the submit button
    var sbmtBtn = document.getElementById(sbmtBtnId);
    // remove the submit button
    sbmtBtn.parentNode.removeChild(sbmtBtn);
    // get the target
    addressBook.target = document.getElementById(targetId);
    // add the onchange event to the controller,
    addressBook.addEvent(control,
                         'change',
                         function(){
                           if(this.value != ''){
                             /* if there's a value,
                                trigger getAddress */
                             addressBook.getAddress(this.value);
                           } else { 
                             // otherwise empty the target
                             addressBook.target.innerHTML = '';
                           }
                         });
  },
  getAddress:  function(id){ // the Ajax call
    // let's let the user know something is happening (see below)
    addressBook.buildLoader();
    /* this is the function that is run
       once the Ajax call completes */
    var fnWhenDone = function(oXML) {
      // get rid of the loader
      addressBook.killLoader();
      // insert the returned address information into the target
      addressBook.target.innerHTML = oXML.responseText;
    };
    // use XHConn's connect method
    addressBook.myConn.connect('index.php', 'POST',
                               'id='+id, fnWhenDone);
  },
  buildLoader: function(){     // builds a loader
    // create a new div
    addressBook.loader = document.createElement('div');
    // give it some style
    addressBook.loader.style.position   = 'absolute';
    addressBook.loader.style.top        = '50%';
    addressBook.loader.style.left       = '50%';
    addressBook.loader.style.width      = '300px';
    addressBook.loader.style.lineHeight = '100px';
    addressBook.loader.style.margin     = '-50px 0 0 - 150px';
    addressBook.loader.style.textAlign  = 'center';
    addressBook.loader.style.border     = '1px solid #870108';
    addressBook.loader.style.background = '#fff';
    // give it some text
    addressBook.loader.appendChild( »
      document.createTextNode( »
        'Loading Data, please wait\u2026'));
    // append it to the body
    addressBook.body.appendChild(addressBook.loader);
  },
  killLoader:  function(){     // kills the loader
    // remove the loader form the body
    addressBook.body.removeChild(addressBook.loader);
  },
  addEvent: function(obj, type, fn){  // the add event function
    if (obj.addEventListener) »
      obj.addEventListener(type, fn, false);
    else if (obj.attachEvent) {
      obj["e"+type+fn] = fn;
      obj[type+fn] = function() {
        obj["e"+type+fn](window.event);
      };
      obj.attachEvent("on"+type, obj[type+fn]);
    }
  }
};
addressBook.addEvent(window, 'load',
                     function(){
                       addressBook.init('person',
                                        'submit',
                                        'address');
                     });

Добавлено через 1 минуту и 16 секунд
А вот строчка из конфиг файл mime.types сервера

application/x-javascript    js

Автор: prog90 7.6.2009, 14:52
Тогда такой вопрос 
Как проверить какие ошибки есть в javascript'е? Есть ли какое нить средство вроде компилятора?

Автор: Samotnik 8.6.2009, 09:50
Цитата(prog90 @  7.6.2009,  14:52 Найти цитируемый пост)
Как проверить какие ошибки есть в javascript'е? Есть ли какое нить средство вроде компилятора? 

можно,
ставь  http://www.mozilla-europe.org/ru/firefox/ а на верх https://addons.mozilla.org/ru/firefox/addon/1843
затем в правом нижнем углу, будет красненький значек, если вдруг повалятся ероры  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)