jQuery - функция slice () начинает считать с 1 вместо 0 в Microsoft Edge - PullRequest
0 голосов
/ 08 июня 2018

Сегодня я заметил некоторые странные проблемы на сайте, который я создаю.Я использую функцию slice(), чтобы получить ссылку на основе некоторых атрибутов.

Она отлично работает в Chrome / Firefox / Opera / Safari, но, похоже, по какой-то причине испытывает трудности с Microsoft Edge?

В современных браузерах ссылки sliced() отображаются следующим образом:

http://www.becreativeagencja.com/elplast-wp/wp-content/themes/BeCreative_ELPLAST/assets/img/docisk-dwustronny.jpg

, тогда как в Microsoft Edge с тем же сценарием это становится:

ttp://www.becreativeagencja.com/elplast-wp/wp-content/themes/BeCreative_ELPLAST/assets/img/docisk-dwustronny.jp

, означающее, что дополнительные буквы в начале и в конце обрезаются.

Кто-нибудь также сталкивался с такой проблемой?Любые идеи, чтобы решить это?

РЕДАКТИРОВАТЬ:

jQuery:

 $(".zoom").click(function() {
    $bgimg = $(this).parent().parent().parent().css("background-image");
    $bgimgcut = $bgimg.slice(5,-2);
    $img = "<img src='" + $bgimgcut + "' width='100%'/>";
    $(".popup-image").html($img);
    $(".popup").fadeIn();
  });

1 Ответ

0 голосов
/ 08 июня 2018

Если бы мне пришлось угадывать, все, кроме Edge, возвращает

url("http://www.becreativeagencja.com/elplast-wp/wp-content/themes/BeCreative_ELPLAST/assets/img/docisk-dwustronny.jpg")

, а Edge возвращает то же значение без кавычек

url(http://www.becreativeagencja.com/elplast-wp/wp-content/themes/BeCreative_ELPLAST/assets/img/docisk-dwustronny.jpg)

Вы можете подтвердить это с помощью

console.log('$bgimg', $bgimg)

Похоже, ваш настоящий вопрос заключается в том, как извлечь URL-адрес изображения из значения CSS url(...), с символами кавычек или без них.

Использование регулярного выражения

$bgimgcut = $bgimg.match(/url\("?(.*?)"?\)/)[1]

const rx = /url\("?(.*?)"?\)/

const strings = [
  'url("http://www.becreativeagencja.com/elplast-wp/wp-content/themes/BeCreative_ELPLAST/assets/img/docisk-dwustronny.jpg")',
  'url(http://www.becreativeagencja.com/elplast-wp/wp-content/themes/BeCreative_ELPLAST/assets/img/docisk-dwustronny.jpg)'
]

strings.forEach(str => {
  console.info('url', str.match(rx)[1])
})
...