Функция JavaScript не будет срабатывать в IE - PullRequest
1 голос
/ 10 мая 2010

У меня есть этот код:

  <body onLoad="subcatSelection();">

Функция находится в файле .js, который включен в этот код:

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

Функция содержит предупреждение («привет»); просто для целей тестирования, чтобы увидеть, если он вызывается, но это не так.

Отображается «Ошибка страницы» или как бы она ни вызывалась в левом нижнем углу Explorer 6, и при двойном щелчке по ней предполагается, что произошла ошибка в строке LINE x ROW y, которая является событием body-onload.

У кого-нибудь есть иде?

Если вам нужно больше информации, дайте мне знать ... Спасибо

UPDATE:

Несколько html перед событием onload ...

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript" src="bincgi/search_lists.js"></script>
<script type="text/javascript" src="bincgi/jsfunctions.js"></script>
<script type="text/javascript" src="bincgi/calendar_eu.js"></script>
<link href="bincgi/main_styles.css" rel="stylesheet" type="text/css">
<link href="bincgi/calendar.css" rel="stylesheet" type="text/css">
<!--[if lt IE 8]>
<link href="bincgi/main_styles_ie_lt7.css" rel="stylesheet" type="text/css">
<![endif]-->

<style type="text/css">
body {
    background-color: #fffec7;
    background-image: url(Graphics/test_bgr.gif);
    background-repeat: repeat-x;
}
</style>

</head>
<body onLoad="subcatSelection();">

Ответы [ 5 ]

0 голосов
/ 10 мая 2010

Поскольку у вас проблема с IE6 только из того, что я понимаю, я сначала попытался бы использовать Fiddler , чтобы определить, правильно ли загружен ваш файл, если это так, я бы изменил содержимое search_list. JS будет:

alert('Before def');
function subcatSelection() {
    alert('In subcatSelection');

}
alert('After def');

Затем создайте страницу, подобную этой, чтобы увидеть, получаете ли вы оповещения в таком порядке: «До определения», «После определения», «До вызова», «При выборе subcatSelection», «После вызова».

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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript" src="bincgi/search_lists.js"></script>
<script type="text/javascript">
    alert("Before Call");
    subcatSelection();
    alert("After Call");
</script>
</head>
<body>test</body></html>
0 голосов
/ 10 мая 2010

Если ответ [Juriy] не сработал, попробуйте вызвать свою функцию на своей странице:

<script type="text/javascript" src="bincgi/search_lists.js"></script>
<script type="text/javascript" >
    alert("first test");
    subcatSelection();
</script>

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

0 голосов
/ 10 мая 2010

Вполне возможно, что есть синтаксическая ошибка, из-за которой не удается правильно определить функцию. Сделайте эту функцию единственной функцией в вашем файле .js, поместите тестовое оповещение («привет!») И попробуйте снова.

0 голосов
/ 10 мая 2010

Проверьте разрешения, вы работаете в папке cgi bin, которая работает немного иначе

Я бы также предложил не смешивать ваши js-файлы с вашим CGI (который больше использует cgi)

0 голосов
/ 10 мая 2010

Насколько я вижу из комментариев, проблема может быть в другой строке search_lists.js (это может быть до определения subcatSelection). IE просто прекращает его разбор и неправильно загружает функцию. Попробуйте оставить одно определение функции в этом файле и посмотрите, что произойдет:

function subcatSelection() {
    alert ("Hello");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...