Javascript не вызывается

Я использую этот HTML

<html>
    <head>
        <Title>EBAY Search</title>
    </head>
    <script language = "JavaScript" src = "ajaxlib.js"></script>
    <body>
        Click here <a href = "#" OnClick = "GetEmployee()">link</a> to show content
        <div id = "Result"><The result will be fetched here></div>
    </body>
</html>

С этим Javascript

var xmlHttp

function GetEmployee()

{

xmlHttp=GetXmlHttpObject()

if (xmlHttp==null)

{

alert("Your browser is not supported")

}

var url = "get_employee.php"

url=url+"cmd=GetEmployee"

url=url+"&sid = "+Math.random()

xmlHttp.open("GET",url,true)

xmlHttp.send(null)

}

function FetchComplete()

{

if (xmlHttp.readyState==4 || xmlHttp.readyState= = "complete")

{

document.getElementById("Result").innerHTML=xmlHttp.responseText

}

if (xmlHttp.readyState==1 || xmlHttp.readyState= = "loading")

{

document.getElementById("Result").innerHTML = "loading"

}

}

function GetXmlHttpObject()

{

var xmlHttp=null;

try

{

xmlHttp=new XMLHttpRequest();

}

catch (e)

{

try

{

xmlHttp =new ActiveXObject("Microsoft.XMLHTTP");

}

}

return xmlHttp;

}

Однако это не называется. get_employee.php отлично работает, когда я вызываю его отдельно, так что проблема не в этом. Что-то не так в моем коде, что мешает его вызову? Я не могу протестировать никакие расширения Firefox, у меня нет доступа, поэтому, пожалуйста, не давайте это в качестве ответа.

изменить: проблема в том, что javascript вообще не вызывается. Я исправил проблему со знаком вопроса, но даже простой javascript с предупреждением не вызывается.

ken: Почему вы почувствовали необходимость редактировать?

user1253538 20.11.2008 15:52

@ Johsxtothe4 - последовательность. JavaScript должен быть JavaScript

Ken 20.11.2008 16:18

Я не понимаю, что вызывает вызов FetchCommplete. Разве где-то там не должно быть груза? Кроме того, проверьте журналы сервера, чтобы узнать, загружаются ли когда-либо ajaxlib.js и get_employee.php.

Paul Tomblin 20.11.2008 16:22
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
3
5 377
10
Перейти к ответу Данный вопрос помечен как решенный

Ответы 10

var url = "get_employee.php" + "?"

(отвечая на комментарий)

Сообщается об ошибке Какие? Вам по-прежнему необходимо присоединить функцию FetchComplete к свойству xmlHttp onreadystatechange, но если этого не сделать, это не должно быть ошибкой.

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

даже когда я ставлю вопросительный знак, он все равно не вызывается. Сообщается о проблеме в строке 7 html-файла, есть ли проблема с OnClick?

user1253538 20.11.2008 16:02
var url = "get_employee.php?"

Нужен знак "?".

Лучше использовать эту разметку для включения ваших скриптов:

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

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

user1253538 20.11.2008 16:02

Разве между частями getcommand.php и cmd= не должно быть знака вопроса или амперсанда?

Я не думаю, что это что-то глупое, например, вопросительный знак в URL-адресе.

var url = "get_employee.php"
url=url+"cmd=GetEmployee"
url=url+"&sid = "+Math.random()

Я ожидал увидеть "?cmd=GetEmployee"

Вы можете использовать alert(url), чтобы проверить точный отправляемый URL.

Измените это

var url = "get_employee.php"

url=url+"cmd=GetEmployee"

url=url+"&sid = "+Math.random()

к этому:

var url = "get_employee.php?cmd=GetEmployee&sid = "+Math.random();

Вам не хватало "?" и нет необходимости во всей конкатенации (но я думаю, что это просто личный стиль).

Кроме того, если у вас действительно есть «<Результат будет получен здесь>» в вашем html, вы должны удалить его.

Убедитесь, что вы не неправильно разместили файл и не присвоили ему имя. Вы также можете изменить OnClick на все строчные буквы.

ajaxlib.js находится в том же каталоге, что и html-файл, и определенно имеет то же имя, что и вызванный из html-файла. переход на строчные буквы не помог.

user1253538 20.11.2008 16:10

Я предполагаю, что вы пробовали предупреждение («бла»); вверху файла? Если файл не запускается, возможно, это проблема с CHMOD. Примечание: добавьте return false; где предупреждение о том, что xmlhttprequest не поддерживается. Вам следует создать тщательную функцию getxmlhttprequest.

dylanfm 20.11.2008 16:19
Ответ принят как подходящий

используйте инструмент отладки javascript, например firebug, это упростит вашу жизнь.

у вас была синтаксическая ошибка в коде, из-за которой "GetEmployee не определен"

это был упущенный «улов» после последней попытки в «GetXmlHttpObject ()». это та же функция после добавления недостающего «улова».

function GetXmlHttpObject()
{
    var xmlHttp=null;
    try
    {
        xmlHttp=new XMLHttpRequest();
    }catch (e)
    {

        try
        {
            xmlHttp =new ActiveXObject("Microsoft.XMLHTTP");
        } 
        catch (e) {}

    }
return xmlHttp;
}

У меня нет доступа к firebug, но ваше исправление, похоже, работает, однако вместо ошибки теперь ничего не происходит .. php по какой-то причине не вызывается?

user1253538 20.11.2008 16:27

Я немного сбит с толку по поводу размещения тега <script> в нейтральной зоне между головой и телом. Имеет ли это какое-то особое значение?

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

Также убедитесь, что OnClick () возвращает false, чтобы браузер не перезагружал страницу.

<a href = "#" OnClick = "GetEmployee()">link</a>

становится

<a href = "#" OnClick = "GetEmployee(); return false;">link</a>

Другие вопросы по теме