Показать сообщение отдельно
  #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.
Ответить с цитированием