Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.11.2011, 20:59
Аспирант
Отправить личное сообщение для Andrej_2 Посмотреть профиль Найти все сообщения от Andrej_2
 
Регистрация: 14.05.2009
Сообщений: 30

Как обойти base href, чтобы ссылка на внешн. js была локальной?
Здравствуйте!
Допустим, есть сайт, на каждой странице которого в <head> прописан <base href="http://www.mysite.ru">, чтобы в коде всем ссылкам не прописывать полные пути и не перегружать тем самым код. Можно оставить относительные пути и убрать base href, но это не желательно, т.к. при сохранении страниц в браузерах (кроме ИЕ) остануться относительные пути и ссылки будут нерабочими. Страницы часто сохраняются для локального просмотра. При этом в нескольких местах вставляются внешние js, но ссылки на эти скрипты должны быть относительными и запиханными в другой скрипт, чтобы не сохранять скрипты и при просмотре сохраненной страницы браузер не лез в онлайн подгружать эти скрипты.

Так как можно совместить <base href="http://www.mysite.ru"> и относительные пути для внешних js, подгружаемых кодом типа

<script>
document.write("<script src='reclama.js?"+Math.random()+"'></sc"+"ript>");
</script>


Пока что получается лишь каждую нужную ссылку писать с полными путями, а так как ссылок много, идут лишние килобайты.
Ответить с цитированием
  #2 (permalink)  
Старый 17.11.2011, 22:27
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,587

Зачем же вам так много левых скриптов на старице?

И раз уж используете скрипт, юзайте переменные:
<script>
var b='http://www.mysite.ru/';
document.write("<script src='"+b+"reclama.js?"+Math.random()+"'></sc"+"ript>");
</script>
__________________
29375, 35
Ответить с цитированием
  #3 (permalink)  
Старый 18.11.2011, 11:25
Аспирант
Отправить личное сообщение для Andrej_2 Посмотреть профиль Найти все сообщения от Andrej_2
 
Регистрация: 14.05.2009
Сообщений: 30

Спасибо, но это не совсем то. Наверное, я неправильно объяснил. Попробую еще раз. Я делаю движок, чтобы сайт был удобен пользователю в плане сохранения информации. Т.е. предполагаестя, что страницы часто сохраняются на комп для дальнейшего просмотра в оффлайн. Обычно при сохранении страниц некоторые браузеры (ИЕ, к примеру), начинают загружать и перепроверять все заново: картинки, скрипты, в том числе скрипт счетчика, сам код и текстовый контент. Это раздражает, т.к. тянет время. Я сделал загружаемым только сам код с контентом, а ненужные в сохраненной версии картинки дизайна и внешние ява-скрипты у меня прописаны с относительными путями, причем контрольный ява-скрипт приписан как указано выше. По нему определяется, в оффлайне или в онлайне пользователь. В результате не только быстро все загружается, но и при открытии сохраненной страницы все происходит мгновенно, ничто в коде не стучится в интернет и не ждет ответа с сервера. В сохраненной версии, кроме того, выбрасывается лишний дизайн, код счетчика, реклама, чтобы страницы не весили много. Вроде, все получилось. Но вот засада в том, что только эксплорер при сохранении страницы перебивает локальные ссылки, делая их полноценными. Т.е. из сохраненной страницы все ссылки навигации доступны. Другие браузеры сохраняют локальные ссылки, видимо, у них в приоритете base href. Если я прописываю base href, то тогда локальная ссылка на base href становится не локальной и все вышеописанное преимущество сводится на нет: все внешние ява-скрипты и прописанные в них коды счетчика, рекламы, расширенного дизайна сохраняются или при открытии страницы подгружаются из интернета. Я так понял, задача нерешаемая и браузер в этом плане не обмануть. Поэтому придется прописывать полные пути для каждой нужной ссылки, не используя base href, а в путях к скриптам и ненужным в сохраненной версии картинкам оставлять локальные пути.

Последний раз редактировалось Andrej_2, 18.11.2011 в 11:27.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать, чтобы у toggle была ненулевая высота? student-k Общие вопросы Javascript 7 15.08.2011 23:46
Как сделать так, чтобы JS при нажатии на кнопку не выполняла запрос со страницы. JSProgrammer Элементы интерфейса 3 18.05.2010 20:18
Как сделать чтобы ссылка двоилась? ДимМмкА Я не знаю javascript 18 24.05.2009 12:58