Мне действительно нужно отключить автовоспроизведение на встраиваемом фрейме vimeo на сайте drupal 6.

Я не могу изменить эти настройки в модуле embedmedia, поэтому мне нужно использовать jQuery для этого.

Это оригинальный контент "src" vimeo:

<iframe src="http://player.vimeo.com/video/69431566?fullscreen=1&amp;show_title=1&amp;show_byline=0&amp;show_portrait=1&amp;autoplay=1" frameborder="0" style="height: 23vw; width: 100vw;"></iframe>

Я переопределяю атрибуты высоты и ширины уже с помощью jQuery.

Поэтому я пытаюсь сделать то же самое для "src", но мой код заменяет содержимое "src":

$("#media-vimeo-1 iframe").attr('src','autoplay=0');

Как я могу сохранить другую часть содержимого src и изменить только настройку автозапуска?

1
webmaster pf 1 Мар 2018 в 18:28

4 ответа

Лучший ответ

Вы должны получить старый src, заменить нужные параметры, а затем изменить src

$(document).ready(function() {
  var oldSrc = $("#media-vimeo-1 iframe").attr("src"); //Get the src of the iframe
  var newSrc = oldSrc.replace("autoplay=1", "autoplay=0"); //Replace "autoplay=1" by "autoplay=0"
  
  $("#media-vimeo-1 iframe").attr("src", newSrc); //Change the src attr to the new value
  
  console.log("Old Src: " + oldSrc);
  console.log("New Src: " + newSrc);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div id="media-vimeo-1">
  <iframe src="http://player.vimeo.com/video/69431566?fullscreen=1&amp;show_title=1&amp;show_byline=0&amp;show_portrait=1&amp;autoplay=1" frameborder="0" style="height: 23vw; width: 100vw;"></iframe>
</div>
1
Mario Rawady 1 Мар 2018 в 16:04

В вашем примере вы просто устанавливаете атрибут src равным autoplay=0 То, что вы действительно хотите сделать, это захватить текущее значение, заменить значение в строке и переназначить значение.

Пример (есть лучшие способы сделать это):

var link = $("iframe").attr('src');
link = link.replace('autoplay=1', 'autoplay=0');
$("iframe").attr('src', link);
0
Kieran Devlin 1 Мар 2018 в 15:36

Надеюсь, этот код поможет вам.

var src = $('iframe').attr('src'); <br>
var searchParams = new URLSearchParams(src); <br>
searchParams.set('autoplay','0'); <br>
var newParams = searchParams.toString(); <br>
$('iframe').attr('src', decodeURIComponent(newParams)); <br>

Исходный код:
https://github.com/sendeveloper/stackoverflow/tree / ведущий / javascript_src_autoplay

0
user3483203 1 Мар 2018 в 16:04

второй параметр для attr может быть функцией, которая обрабатывает старое значение, чтобы получить новое значение:

$("#media-vimeo-1 iframe").attr('src', function (index, oldSrc) {
    return oldSrc.replace('autoplay=1', 'autoplay=0');
});
2
4castle 1 Мар 2018 в 15:33