Как вы можете обнаружить ссылку в тексте и использовать oembed/jquery для ее изменения (например, Facebook, Twitter и т. д.)

Я хочу, чтобы пользователи могли копировать и вставлять ссылку на что-то и, используя oembed, вставлять ее в текстовое поле. Отсюда я хочу иметь возможность идентифицировать URL-адрес и превратить его в встроенный объект или как бы вы его ни назвали. (например, страница Youtube => URL => textarea => oembed => встроенный)


person John Doe    schedule 07.05.2011    source источник


Ответы (2)


Вы можете сделать это с помощью плагина jquery oembed:

http://code.google.com/p/jquery-oembed/

Надеюсь это поможет. Ваше здоровье

person Edgar Villegas Alvarado    schedule 07.05.2011

Если вам нужен простой пример JS без использования внешней библиотеки (это для Facebook, но та же концепция может быть реализована для других провайдеров).

$().ready(function() {
  $('.facebookLink').each(function() {
    var container = $(this);
    var url = jQuery.trim(container.text());
    container.text("");
    if (url) {
      $.ajax({
        url: "https://apps.facebook.com/plugins/post/oembed.json/",
        data: {
          "url": url
        },
        dataType: "jsonp",
        async: false,
        success: function(data) {
          container.html(data.html);
        }
      });
    }
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div class="facebookLink">https://www.facebook.com/FacebookDevelopers/posts/10152128760693553</div>

Вы можете проверить документацию здесь.

https://developers.facebook.com/docs/plugins/oembed-endpoints

Примечание. Чтобы этот API правильно работал с вызовами ajax на мобильных устройствах; Вам нужно использовать домен конечной точки «apps.facebook.com» вместо «www.facebook.com»:

https://apps.facebook.com/plugins/post/oembed.json/?url={контент-url}

Это связано с тем, что если вы используете конечную точку, указанную в официальной документации «www.facebook.com», пользовательский агент мобильных устройств принудительно перенаправит вас на «m.facebook.com», в котором эта конечная точка не реализована.

person Yacoub Oweis    schedule 25.11.2015