Добавление блока Javascript к DOM завершается сбоем в работе - но не в dev - PullRequest
2 голосов
/ 03 февраля 2009

У меня есть веб-сайт ASP.NET. Очень огромный!

Последнее добавление, которое я сделал, все с поддержкой JavaScript / AJAX.

Я отправляю код HTML и JavaScript обратно с сервера на клиент, и клиент вставляет HTML-код в DIV - и внедряет JavaScript в DOM, используя следующее:

$('<script type="text/javascript">' + script + '</sc' + 'ript>').appendTo(document);

или это:

var js = document.createElement("script");
js.setAttribute("type", "text/javascript");
js.text = script;
document.appendChild(js);

На моем собственном компьютере разработчика, внедренный javascript доступен, и я могу выполнять встроенные функции JavaScript.

При развертывании в моей тестовой среде) у нас есть внутреннее доменное имя, такое как www.testenv.com), я получаю ошибки JavaScript.

Я пытался выделить проблему на маленькую страницу, где я вставляю предупреждение ("sfdfdf"); в нижней части страницы, и это прекрасно работает.

Существуют ли какие-либо параметры политики, запрещающие это?

Ответы [ 2 ]

5 голосов
/ 03 февраля 2009

Не добавлять ребенка в «документ»; не может пойти туда, и вы должны получить HIERARCHY_REQUEST_ERR исключение DOME в соответствии со спецификацией DOM Level 1 Core. Единственный элемент, который может попасть в дочерний список объекта Document, - это единственный корневой documentElement, .

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

0 голосов
/ 03 февраля 2009

Динамически создаваемые элементы должны работать нормально, скрипт будет выполняться при вставке в DOM. Чтобы конкретно ответить на ваш вопрос, нет прямых параметров политики, запрещающих внедрение сценариев, однако, если вы используете вызовы ajax в динамически вставленном сценарии, вы можете столкнуться с междоменными ограничениями.

Если бы вы могли опубликовать ошибку, и, возможно, источник вставляемого элемента 'script' помог бы отладить проблему:)

...