Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 25.01.2016, 18:27
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Можно же, если с привлечением JQ, и

$('script').each(function() {
    if(this.src && /pluiginname/i.test(this.src)) {
       var a = this.getAttribute('src').split('/'); //можно и полный url использовать this.src
       path = a.slice(0, a.length-1).join('/')+'/';   
    }
})
Ответить с цитированием
  #12 (permalink)  
Старый 25.01.2016, 18:38
Интересующийся
Отправить личное сообщение для kosuha606 Посмотреть профиль Найти все сообщения от kosuha606
 
Регистрация: 30.08.2015
Сообщений: 12

да это здорово, но понять гораздо сложнее что происходит. Но это вопрос практики/опыта
Ответить с цитированием
  #13 (permalink)  
Старый 25.01.2016, 19:00
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

А что тут сложного. Вы для того чтобы узнать src скрипта тревожите JQ - $(scripts[i]).attr('src');, но это ведь можно получить и как this.getAttribute('src'), и сразу разбив его в массив. Если разбить по рег. выражению, одиночному слешу, то можно использовать непосредственно полный url, какая разница вам:

var a = this.src.split(/\/{1}/);


Найденные скрипты в теле страницы и не имеющие атрибута src вернут null, а значит сразу проверив истинность атрибута и есть ли в нем имя плагина, обработаем только нужный url, и да, надо после этого прервать цикл:

$('script').each(function() { //если использовать селектор 'script[src]', то проверку this.src из условия можно убрать 
    if(this.src && /pluigin_name/i.test(this.src)) {
       var a = this.src.split(/\/{1}/); 
       path = a.slice(0, a.length-1).join('/')+'/'; //соединили элементы массива, как его срез без последнего элемента, в строку через слеш
       return false;   
    }
})


флаг i в рег.выражении для "необязательной" прописи имени плагина с учетом регистра

Если вообще не дергать JQ для этой операции ($('script').each(function()...), то querySelectorAll().

PS. Не обязательно разбивать url в массив, можно взять только часть строки от начала до позиции последнего найденного слеша.

PPS. Ну еще "из непонятного", хотя это не так:

var path = document.querySelector("script[src*=pluigin_name]").src;
path = path.slice(0, path.lastIndexOf('/')+1)


Только в этом случае нужно учитывать регистр в имени каталога плагина

Последний раз редактировалось laimas, 25.01.2016 в 19:56.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
jQuery получить дату Add-Aware jQuery 4 30.01.2011 20:05
Как в jQuery получить доступ к фрейму или самому верхнему окну? Neokortex jQuery 7 20.12.2010 10:38
jQuery, load: замена элемента вырубает js на странице. warobushek AJAX и COMET 0 08.10.2010 07:44
Вакансия: Front-end разработчик (HTML, CSS, JS, Ajax, jQuery) ivankov Работа 0 05.10.2010 19:00
jquery - Как получить полный путь? kirill.adw jQuery 5 20.11.2009 17:40