คุณจะตรวจจับลิงก์ในข้อความและใช้ oembed/jquery เพื่อเปลี่ยนแปลงได้อย่างไร (เช่น Facebook, Twitter เป็นต้น)

ฉันต้องการให้ผู้ใช้สามารถคัดลอกและวางลิงก์ของบางสิ่งบางอย่าง และใช้ oembed เพื่อวางลงในกล่องข้อความ จากที่นี่ ฉันต้องการระบุ URL และเปลี่ยนให้เป็นวัตถุ oembed หรืออะไรก็ตามที่คุณจะเรียกมันว่า (เช่น หน้า 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={content-url}

เนื่องจากหากคุณใช้ตำแหน่งข้อมูลที่ระบุไว้ในเอกสารอย่างเป็นทางการ "www.facebook.com" ตัวแทนผู้ใช้ของอุปกรณ์มือถือจะบังคับให้เปลี่ยนเส้นทางไปยัง "m.facebook.com" ซึ่งไม่มีการใช้ตำแหน่งข้อมูลนี้

person Yacoub Oweis    schedule 25.11.2015