Как написать регулярное выражение для iframe вконтакта на JavaScript?

Здравствуйте, джедаи. ВК позволяет вставлять посты на сторонние сайты:

<div id="vk_post_69537786_2246"></div><script type="text/javascript">  (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "//vk.com/js/api/openapi.js?116"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'vk_openapi_js'));  (function() {    if (!window.VK || !VK.Widgets || !VK.Widgets.Post || !VK.Widgets.Post("vk_post_69537786_2246", 69537786, 2246, 'jHWM43Co8q_mY1BNKbK-VrPDG6I', {width: 600})) setTimeout(arguments.callee, 50);  }());</script>


Как сделать так, чтоб можно было вставлять url поста, а скрипт переиначивал его в код для айфрейма?

Я полный невежда в JS. Вот я чего-то написал, url он определяет, но не работает. Думаю на тег "script" ругается. Как сделать? Спасибо.

(function($) {

  $.fn.vkh = function(options) {
    return this.each(function() {
      
      var text = $(this).html();
      var regex = /(http|https):\/\/(www.)?vk|vkontakte\.com|ru\/([A-Za-z0-9._%-]*)?(\?w=)?wall([0-9._%-]*)(\&\S+)?/
      var html = text.replace(regex, '
<div id="vk_post_69537786_2246"></div> 
<script type="text/javascript">  (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "//vk.com/js/api/openapi.js?116"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'vk_openapi_js'));  (function() {    if (!window.VK || !VK.Widgets || !VK.Widgets.Post || !VK.Widgets.Post("vk_post_69537786_2246", 69537786, 2246, 'jHWM43Co8q_mY1BNKbK-VrPDG6I', {width: 600})) setTimeout(arguments.callee, 50);  }());</script>

 ');
      $(this).html(html);
    });
  }


Скрипт айфрейма как присобачить?
  • Вопрос задан
  • 445 просмотров
Пригласить эксперта
Ответы на вопрос 1
OAPrilepa
@OAPrilepa
Frontend developer
А код весь приведен? Не хватает закрывающих скобок, да и обрывается на интересном месте.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы