.attr () или .prop () или заменить без влияния на href в iOS? - PullRequest
0 голосов
/ 01 июля 2018

Я пытаюсь выяснить, почему браузер iOS Safari не будет применять изменение href, как это происходит в браузере настольного компьютера. До сих пор я пробовал .attr() и .prop(), но ни один из них, похоже, не применяет настройку URL.

Для большей наглядности я пытаюсь заменить местоположение href последнего связанного элемента в строке из 4 элементов.

На данный момент сгенерированный HTML выглядит примерно так:

<a href="http://www.URL.com/link-to-img-url-1">[LINK TO IMAGE 1]</a>
<a href="http://www.URL.com/link-to-img-url-2">[LINK TO IMAGE 2]</a>
<a href="http://www.URL.com/link-to-img-url-3">[LINK TO IMAGE 3]</a>
<a href="http://www.URL.com/link-to-img-url-4">[LINK TO IMAGE 4]</a>

Но я бы хотел, чтобы к четвертой ссылке применялся другой URL, например:

<a href="http://www.DIFFERENTURL.com/">[LINK TO IMAGE 4]</a>

Вот полный пример фрагмента (ссылки на изображения являются просто заполнителями):

$(document).ready(function() {
  $("a:last").attr("href", "http://www.google.com/");
});
a {
  display: block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a href="http://www.URL.com/link-to-img-url-1">[LINK TO IMAGE 1]</a>
<a href="http://www.URL.com/link-to-img-url-2">[LINK TO IMAGE 2]</a>
<a href="http://www.URL.com/link-to-img-url-3">[LINK TO IMAGE 3]</a>
<a href="http://www.URL.com/link-to-img-url-4">[LINK TO IMAGE 4]</a>

И вот некоторые другие сценарии, которые я пытался реализовать на данный момент:

С .attr () / НЕ работает на iOS:

$(document).ready(function(){
    $("#instafeed a:nth-child(4)").attr("href", "http://www.DIFFERENTURL.com/");
});

С .prop () / НЕ работает на iOS:

$(document).ready(function(){
    $("#instafeed a:nth-child(4)").prop("href", "http://www.DIFFERENTURL.com/");
});

С: eq (3) + .attr () / НЕ работает на iOS:

$(document).ready(function(){
    $("#instafeed a:eq(3)").attr("href", "http://www.DIFFERENTURL.com/");
});

С [0] .href / НЕ работает на iOS:

$(document).ready(function(){
    $('#instafeed a:last')[0].href = 'http://www.DIFFERENTURL.com/';
});

С replaceWith (Метод 1) / НЕ работает на iOS

$(document).ready(function(){
    $('#instafeed a').last().replaceWith('http://www.DIFFERENTURL.com/');
});

С replaceWith (Метод 2) / НЕ работает на iOS:

$(document).ready(function() {
  $("#instafeed a:last").show(function() {
    var before = $(this).attr('href');
    var replacewith = "https://DIFFERENTURL.com/";
    var after = before.replace(before, replacewith);
    $(this).attr("href", after);
  });
});
...