Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Не удается подключить javascript-код из отдельного файла (https://javascript.ru/forum/events/54112-ne-udaetsya-podklyuchit-javascript-kod-iz-otdelnogo-fajjla.html)

Mack 04.03.2015 09:40

Не удается подключить javascript-код из отдельного файла
 
Доброго времени суток, форумчане! Задался вопросом повышения скорости сайта и оптимизации java скриптов на сайте. Почитал, что лучше их вызывать из отдельного файла. Наткнулся на ваш очень полезный форум. Нашел здесь искомый метод реализации по своему вопросу, но подключить из отдельного файла так не удалось. Использовал инструкцию и примеры с вашего форума, но все безрезультатно. У меня все javascript-коды вписаны в страницы сайта, хотелось бы их перенести в отдельные файлы, так как мне не хватает знаний или понимания некоторых нюансов у меня это сделать не получаться. Прошу дельного совета у специалистов.

Вот сайт на CMS WordPress с которым я работаю: http://unusualthings.ru/
Хотелось бы перенести социальные кнопки, скрипт вставляющий ссылку на источник и «липкого» блока «Стать подписчиком» в отдельный файл и прописав в один или несколько файлов, вызывать их отдельно путем <script src="/js/script1.js"></script>
<script src="/js/script2.js"></script> и т.д.

Что я пытался зделась, чтобы подключить javascript из отдельного файла:
1. Создал отдельный файл script.js. Поместил в файл скрипт без тегов <script type="text/javascript">скрипт </script> т.е. чистый скрипт.
2. В файле header.php в вордпрессе перед закрывающим тегом </head> поместил функцию выхова <script src="/js/script1.js"></script>.

Но ничего не получилось! Для чистоты эксперимента проделывал данную операцию по несколько раз. Вставлял в необходимые места функцию вызова скрипта, пытался по отдельности каждый скрипт вызывать, но все безрезультатно.
Может это такие специфические скрипты, которые нельзя вызвать из отдельного файла? В "теле" сайта прописанными в файлах они работают, а по отдельности вызвать не удается. Вот собственно и они :

Скрипт создания "липкого" для подписчиков в сайдбаре
<div id="fixblock"><div class="sidebartitle">Стать подписчиком</div></div>
<script type="text/javascript">
function getTopOffset(e) { 
	var y = 0;
	do { y += e.offsetTop; } while (e = e.offsetParent);
	return y;
}
var block = document.getElementById('fixblock'); /* fixblock - значение атрибута id блока */
if ( null != block ) {
	var topPos = getTopOffset( block );
	window.onscroll = function() {
		var newcss = (topPos < window.pageYOffset) ? 
			'top:10px; width:280px; position: fixed;' : 'position:static;';
		block.setAttribute( 'style', newcss );
	}
}
</script>

Скрипт вставки ссылки на источник при копировании
<script type="text/javascript">
var source_link = '<p>Источник: <a href="' + location.href + '">' + location.href + '</a></p>';
jQuery(
    function($)
    {
        if (window.getSelection) $('#content div.post').bind(
            'copy',
            function()
            {
                var selection = window.getSelection();
                var range = selection.getRangeAt(0);
                var magic_div = $('<div>').css({ overflow : 'hidden', width: '1px', height : '1px', position : 'absolute', top: '-10000px', left : '-10000px' });
                magic_div.append(range.cloneContents(), source_link);
                $('body').append(magic_div);
                var cloned_range = range.cloneRange();
                selection.removeAllRanges();
                var new_range = document.createRange();
                new_range.selectNode(magic_div.get(0));
                selection.addRange(new_range);
                window.setTimeout(
                    function()
                    {
                        selection.removeAllRanges();
                        selection.addRange(cloned_range);
                        magic_div.remove();
                    }, 0
                );
            }
        );
    }
);
</script>

Социальные кнопки:
<script type="text/javascript">(function() {
  if (window.pluso)if (typeof window.pluso.start == "function") return;
  if (window.ifpluso==undefined) { window.ifpluso = 1;
    var d = document, s = d.createElement('script'), g = 'getElementsByTagName';
    s.type = 'text/javascript'; s.charset='UTF-8'; s.async = true;
    s.src = ('https:' == window.location.protocol ? 'https' : 'http')  + '://share.pluso.ru/pluso-like.js';
    var h=d[g]('body')[0];
    h.appendChild(s);
  }})();</script>

Хотелось бы отдельно еще вызвать кнопки плавной прокрутки страницы "Вверх-вниз", но хотелось бы пока с этим разобраться.
Прошу помощи у специалистов. Заранее благодарю за дельный совет!

hhh 07.03.2015 17:05

- Ссылку на скрипт <script src="/js/script1.js"></script> поместите перед закрывающим тегом </body>
- Через исходный код проверьте или он вообще открывается по этому относительному пути.


Часовой пояс GMT +3, время: 17:09.