У меня есть элемент управления на веб-странице, которая выполняет функцию обратного вызова при внесении депозита.Запуск HTML/Javascript динамически
В бэкэнд пользователь может добавить скрипт, изображения, фреймы и т. Д., И моя программа создаст функцию javascript с тем же именем, что и обратный вызов депозита управления, который выполняет фрагменты кода, введенного пользователем в бэкэнд (скрипт, iframe, html и т. д.).
Функция должна запускать все части HTML/Javascript, которые клиент ввел в CMS. Я заранее не знаю, что вводит пользователь, это может быть сценарий или изображение или что-то еще.
У меня возникли проблемы с запуском фрагментов HTML/Javascript.
1) Я не могу создать элемент сценария и добавить его в DOM, потому что это может быть образ или что-то еще.
2) document.write работает, но он удаляет страницу.
3) Я не могу использовать innerHTML, все работало помимо скриптов, которые я добавил динамически.
4) Я не могу использовать textNode, потому что он не запускает скрипты, когда я добавляю их в DOM.
Каждый раз, когда я добавляю его динамически, я получаю фактический код, напечатанный в строке вместо кода.
Может ли кто-нибудь помочь?
Спасибо.
p.s.
Вот пример некоторых HTML, если я мог бы получить эту работу, где TrackingCode может быть изображение или сценарий, то, что мой ответ:
<head>
<script type='text/javascript'>
function test(pixelData){
var body= document.getElementsByTagName('body')[0];
var trackingCode = '<script type=\'text/javascript\'>alert(\'[hi]\');</script>';
var div = document.createElement('div')
trackingCode = trackingCode.replace(/>/g,'>').replace(/</g,'<');
div.innerText = trackingCode;
document.documentElement.firstChild.appendChild(div);
body.appendChild(div);
}
</script>
</head>
<body>
<script type="text/javascript">
test();
</script>
<div id='whatever'>
</div>
</body>
Сценарий отображается как текст. Когда я избежал строки javascript, он вставлял его в виде закодированного текста, но не запускал его. – Eitan