У меня есть решение для этой проблемы, но я бы предпочел использовать jQuery, если есть способ, а также мне очень любопытно, почему это происходит.jQuery разбора HTML неожиданно и неправильно
У меня есть приложение 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();
Если я использую .html
функции JQuery в IT на самом деле реструктурирует мой HTML, прежде чем вставлять его. Он перестраивает его на следующее:
<fb:serverfbml style="width: 300px; height: 225px;">
</fb:serverfbml>
<script type="text/fbml">
<fb:fbml>
</fb:fbml>
</script>
Я предполагаю, что он делает это, потому что он содержит нестандартные тег, но есть ли способ, чтобы Jquery не переформатировать свою строку, прежде чем вставить его?
Кому-то может понадобиться переименовать заголовок для этого, поскольку он не обрабатывается неправильно, а является частным форматом Facebook. – ironsam
... но он * is * неправильно разобран ... часть реализации FBML включает добавление объявления xmlns: fbml в элемент , поэтому оно действительно. –
Добавляет пространство имен xml в html-документ, а затем используя теги xml из указанного пространства имен xml делают теги действительными html? Конечно, этот материал не подтвердил бы. – ironsam