Plan1977
Новичок
Дата регистрации:
28.03.2013 07:47:27
Сообщений: 11
Здравствуйте Михаил!
Часто захожу на Ваш сайт и использую Ваши рекомендации. Всё очень доступно и понятно.
В процессе тестирования в разных браузерах своего сайта, столкнулся вот с какой проблеммой:
Опера не воспринимает конструкцию <Script src='имя скрипта.js'></script>
эту строку я поместил между тегами <head></head>. Файл .js существует и расположен в корне сайта.
Браузеры IE9, IE8 и Chrome отрабатывают эту конструкцию успешно.
если скрипт не загружать через SRC='имя скрипта.js', а просто включить код скрипта между тегами <script></script>, то всё успешно работает и в Опере.
В чём проблемма, не пойму, и НЕ могу нигде найти ответа. Может Вы поможите !!!!
Ну что знатоки, ни кто не знает в чём проблемма?????
Admin
Администратор
Дата регистрации:
27.05.2010 21:23:42
Сообщений: 3063
<script type="text/javascript" src="script.js"></script>
вот так правильно.
Plan1977
Новичок
Дата регистрации:
28.03.2013 07:47:27
Сообщений: 11
Спасибо за ответ.
Попробовал, но эфекта НЕТ.
Opera вер. 12.2
выдаёт вот такую вот ошибку
Javascript URL thread: "javascript:doMenu('1')"
Uncaught exception: ReferenceError: Undefined variable: doMenu
Error thrown at unknown location in javascript:doMenu('1'):
/* no source available */
я так понимаю, что не находится процедура doMenu() которая как раз находится в загружаемом файле. Я конечно нашёл обходной путь (подцепил script через Include()), НО всё таки хотелось бы разобраться.
вот привожу текст странички PHP:
<?php include ('lib/lib_main.php'); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns='http://www.w3.org/1999/xhtml'>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="expires" content="Mon, 01 Jan 1990 00:00:00 GMT">
<meta name="description" content="Управление социальной политики по Чкаловскому району города Екатеринбурга">
<meta name="keywords" content="социальная политика Чкаловского района, социальная защита Чкаловского района, Управление социальной политики, соцзащита">
<link rel="stylesheet" type="text/css" href="styles/mainStyle.css" />
<title>Управление социальной политики по Чкаловскому району города Екатеринбурга</title>
<script type="text/javascript" src="showHideText.js"></script>
</head>
<?php
echo"<body>\n<script>\n";
/*include ('showHideText.js'); // подключение функций JavaScript*/
echo"</script>\n";
include('template/background.tpl');
echo"\t<table class='main'>\n\t\t<tr>\n\t\t\t<td class='menu'>\n";
include('template/menu.tpl'); // Меню
echo"\t\t\t</td>\n\t\t\t<td>\n";
echo"<style type='text/css'>\n";
include('styles/news.css'); // Таблица стилей для C O N T E N T
echo"</style>\n\t\t\t<div class='content'>\n";
include('pages/tpl_news.php'); // C O N T E N T
echo"\t\t\t</div>\t\t\t</td>\n\t\t\t<td class='sidebar'>\n";
include('template/sidebar.tpl'); // Правая колонка
echo"\t\t\t</td>\n\t\t</tr>\n\t\t<tr class='footer'>\n\t\t\t<td>\n";
include('template/statist.tpl'); // Статистика
echo"\t\t\t</td>\n\t\t\t<td>";
Footer(); // Подвал
echo"</td>\n\t\t\t<td>\n\t\t\t</td>\n\t\t</tr>\n\t</table>\n</body>\n</html>";
?>
а вот сам код скрипта
// Скрывает) содержимое блока.
function doMenu_Hide(ASubObj, AimgObj, ImgHide)
{ASubObj.style.display = 'none';
AimgObj.src = ImgHide;} /* ../treeClosed.png */
// Отображает содержимое блока.
function doMenu_Show(ASubObj, AimgObj, ImgShow)
{ASubObj.style.display = 'block';
AimgObj.src = ImgShow;}
// Скрыть, отобразить содержимое
function doMenu(AObjIndex,ImgIndex)
{var subObj = document.all['chapter' + AObjIndex];
var imgObj = document.all['chapter_img' + AObjIndex];
var PathImg='http://chkuszn.ru/pictures/'
switch (ImgIndex)
{
case 1:
var ImgHide=PathImg+'down1.png';
var ImgShow=PathImg+'up1.png';
break;
case 2:
var ImgHide=PathImg+'down2.png';
var ImgShow=PathImg+'up2.png';
break;
default:
{var ImgHide=PathImg+'treeClosed.png';
var ImgShow=PathImg+'treeOpened.png';}
}
if ( subObj.style.display == 'none' )
{doMenu_Show(subObj, imgObj, ImgShow);}
else
{doMenu_Hide(subObj, imgObj, ImgHide);}
} // doMenu
Admin
Администратор
Дата регистрации:
27.05.2010 21:23:42
Сообщений: 3063
Подключается всё, ищите ошибку в самом скрипте.
Plan1977
Новичок
Дата регистрации:
28.03.2013 07:47:27
Сообщений: 11
Может в скрипте какая то ошибка и есть, я пока в Javascript чайник, НО ведь если скрипт в самом php файле прописать он работает, я не пойму в чём разница.
Если не сложно глянь скрипт (он небольшой), подскажи где ошибка.
Буду премного благодарен.
Admin
Администратор
Дата регистрации:
27.05.2010 21:23:42
Сообщений: 3063
Ищется ошибка так:
1. Комментируется весь код, оставляя лишь 1 строчку.
2. Вызывается alert(); с любой строкой.
3. Если alert() появляется, значит, всё нормально, если нет, значит, ошибка в верхней строчке.
4. Если alert() появляется, надо расскоментировать ещё одну строчку и далее к пункту 2.
5. Так до тех пор, пока не будет расскоментирован весь код.
Plan1977
Новичок
Дата регистрации:
28.03.2013 07:47:27
Сообщений: 11
хорошо попробую.
Plan1977
Новичок
Дата регистрации:
28.03.2013 07:47:27
Сообщений: 11
Попробовал.
Заремарил весь скрипт
и прописал в самом начале только одну строку
alert('Если Это сообщение МОЖНО ПРОЧИТАТЬ, значит скрипт РАБОТАЕТ');
В IE9 работает
в Опере ни каких реакций. Окно с сообщением не выводится.
Ну не хочет опера загружать скрипт из внешнего файла и всё. JavaScript в настройках Оперы включен. Сайты из интернета открываются нормально. В чём причина НЕ пойму !!!
Admin
Администратор
Дата регистрации:
27.05.2010 21:23:42
Сообщений: 3063
Создайте файл functions.js:
function func() {
alert("hello"
}
В основном файле:
<script type="text/javascript" src="functions.js"></script>
<script type="text/javascript">
func();
</script>
Если выведется "hello" тему можно закрывать, так как это будет доказывать, что Opera может подключать внешние файлы.
Plan1977
Новичок
Дата регистрации:
28.03.2013 07:47:27
Сообщений: 11
попробовал, ДА такая схема работает и в опере. Странно, в чём тогда причина?????
А вот так будит работать?
<html>
<head>
......
<script type="text/javascript" src="functions.js"></script>
</head>
<body>
.....
<a href="javascript:func();"> - я так понимаю причина именно в этой строке, а вот что здесь НЕ верно?
.....
</body>
</html>
при условии что в файле functions.js
есть функция func() {......}
??????????????