Добавьте нестандартный тег в DOM с помощью jQuery - PullRequest
0 голосов
/ 02 ноября 2010

Я пытаюсь поместить тег в виджет диалога JQuery-ui. Из-за некоторых других проблем мне нужно загрузить это с сервера как вызов ajax.

Возвращено:

    <div id="ajax-body">
    give gift
 <fb:serverFbml width="650px">

  <script type="text/fbml">
  <center>
      <fb:request-form action="${shareGiftUrl}" type="Podíl na Zlaté soše" method="POST"
        content="Daroval jsem ti cuhlu" invite="false">
            <fb:multi-friend-selector cols="4" rows="3" 
             showborder="false" max="1" 
             actiontext="Vyber přítele, kterému chceš darovat podíl a klikni na              'Posílat mi žádosti typu Podíl na Zlaté soše'" 
             email_invite="false" bypass="cancel" import_external_friends="false" 
             exclude_ids="${excludeIds}" />
     </fb:request-form> 
     </center>
     </script>
     </fb:serverFbml>
    </div>

если я помещу это в div, подготовленный для диалога, типа $ (div) .html (data):

    function loadAjax(url, title) {
 $.get(url,
   function(data) {
    $("#ajaxModal").html(data);
    $("#ajaxModal").show();
    $("#ajaxModal").dialog( {
     modal : true,
     title : title,
     width : 680,
     height : 500,
     close : function(event, ui) {
      $("#ajaxModal").dialog("destroy");
      $("#ajaxModal").html("");
     }
    });
   });
}

это не работает, тег отсутствует в теге в модальном диалоге.

Тег script является последним дочерним элементом тега body - и так же, как и пользовательский интерфейс div

Есть идеи?

1 Ответ

1 голос
/ 23 ноября 2010

Проблема в том, что jQuery обрабатывает теги скрипта иначе, чем другие.Если он находит его в структуре, переданной в качестве параметра функции html, он извлекает его и запускает на нем eval, а затем помещает в конец документа.

Обойти это можно, взяв тег script и поместив его вструктура vira normal JavaSript

var script = document.createElement('script');
script.type = 'text/fbml';
script.text = scripttext;

Затем его можно добавить как

$("#ajaxModal").append(script);

Я использую регулярное выражение для извлечения сценария из ответа ajax

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...