Итак, у меня есть решение этой проблемы, отличное от jQuery, но я бы предпочел использовать jQuery, если есть это способ, а также мне очень любопытно, почему это происходит.
У меня есть приложение Facebook iframe, и я использую 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 не переформатировать мою строку перед ее вставкой?