Так что у меня есть не-1001 * jQuery решение этой проблемы, но я бы предпочел использовать jQuery, если есть способ, и мне также очень любопытно, почему это происходит.
У меня есть приложение iframe для Facebook, и я использую Facebox для динамической загрузки некоторого XFBML во всплывающем окне.
Теперь загружаемый мной XFBML является тегом fb:serverfbml
, который создает фрейм iframe, указывающий на Facebook, и отображает FBML. Что по сути означает, что мне нужно динамически добавить FBML и затем повторно проанализировать XFBML после отображения всплывающего окна. Итак, у меня есть код, который выглядит так:
var App = {};
App.inviteFBML = '\
<fb:serverfbml style="width: 300px; height: 225px;"> \
<script type="text/fbml"> \
<fb:fbml> \
</fb:fbml>\
</script>\
</fb:serverfbml>';
App.inviteFBMLHolder = "<div id='invite_holder' style='width: 300px; height: 250px;'></div>";
App.showInvitePrompt = function(){
$.facebox(App.inviteFBMLHolder);
document.getElementById('invite_holder').innerHTML = App.inviteFBML;
FB.XFBML.Host.parseDomElement(document.getElementById('facebox'));
};
Теперь приведенный выше код работает, однако обратите внимание, что я использую
document.getElementById('invite_holder').innerHTML
вместо
$('#invite_holder').html();
Если я использую функцию jQuery .html
, она на самом деле реструктурирует мой HTML перед вставкой. Это реструктурирует это к следующему:
<fb:serverfbml style="width: 300px; height: 225px;">
</fb:serverfbml>
<script type="text/fbml">
<fb:fbml>
</fb:fbml>
</script>
Я предполагаю, что это происходит потому, что он содержит нестандартные теги, но есть ли способ, чтобы jQuery не переформатировал мою строку перед ее вставкой?