Я пытаюсь сделать что-то как C #include "filename.c"
, или PHP include(dirname(__FILE__)."filename.php")
но в JavaScript. Я знаю, что могу сделать это, если я могу получить URL, js файл был загружен из (например, URL, данный в src атрибуте тега). Есть ли какой-либо путь к JavaScript для знания этого?
С другой стороны, там какой-либо хороший путь состоит в том, чтобы загрузить JavaScript динамично из того же домена (не зная домен конкретно)? Например, позволяет, говорят, что у нас есть два идентичных сервера (QA и производство), но у них ясно есть различные домены URL. Есть ли способ сделать что-то как include("myLib.js");
где myLib.js загрузится от домена файла, загружающего его?
Извините, если это сформулировало немного смутно.
В сценарии:
var scripts = document.getElementsByTagName("script"),
src = scripts[scripts.length-1].src;
Это работает, потому что браузер загружает и выполняет сценарии по порядку, поэтому пока ваш сценарий выполняется, документ, в который он был включен обязательно, чтобы ваш скриптовый элемент был последним на странице. Этот код, конечно, должен быть «глобальным» для сценария, поэтому сохраните src
где-нибудь, где вы можете использовать его позже. Избегайте утечки глобальных переменных, заключив их в:
(function() { ... })();
Возможно, я неправильно понял ваш вопрос, но кажется, что вы должны просто иметь возможность использовать относительный путь, если производственный сервер и сервер разработки используют одну и ту же структуру путей.
<script language="javascript" src="js/myLib.js" />
Независимо от того, является ли это сценарий, файл HTML (например, для кадра), файл CSS, изображение и т. Д., Если вы не указали server / domain путь к html-документу будет по умолчанию, поэтому вы можете сделать, например,
или
Если вы не укажете сервер / домен, путь будет относительным либо к пути страницы, либо к сценарию пути основного документа