Почему HIERARCHY_REQUEST_ERROR (3) при добавлении div в div в IE - PullRequest
0 голосов
/ 21 апреля 2011

Я использую jQuery 1.5.2, пытаясь динамически загрузить div из одного источника в div в моем документе-контейнере. Когда я загружаю документ в Firefox 4, документ загружается с сообщением «Понял!», Но когда я загружаю его в IE9, я получаю HIERARCHY_REQUEST_ERROR, когда он пытается .append() один div в другой.

Вот контейнер:

<!DOCTYPE html 
     PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js" type="text/javascript"></script>
  <script type="text/javascript" src="/static/harness-script.js"></script>
</head>
<body>

  <div id="main_cont">
  </div>

</body>
</html>

Вот сценарий:

function load_stuff(widget_source) {
    var node = $(widget_source.documentElement).clone();
    // add the node to the main content
    $('#main_cont').append(node);
}

// Load and init the widget
$(document).ready(function() {
    resp = $.get(
        '/static/widget.xhtml',
        load_stuff
    );
});

widget.xhtml очень прост:

<?xml version="1.0" encoding="UTF-8"?>
<div>
  Got it!
</div>

Как я могу переписать это так, чтобы он работал кросс-браузер?

1 Ответ

0 голосов
/ 27 июня 2011

Официальный ответ от команды jQuery: загрузка XHTML в DOM невозможна в IE .

Единственное решение, которое я нашел, - это обнаружение браузера на стороне сервера и передача содержимого в виде «text / html» вместо «application / xhtml + xml», когда браузер IE.

Я полагаю, что можно также написать обработчик на стороне клиента, который бы добавлял узел не в IE, и явно создавал DOM из XML, если в IE, но это не стоит для меня проблем, так как у меня есть доступ на стороне сервера.

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