У меня есть элемент управления на веб-странице, который запускает функцию обратного вызова при внесении депозита.
В бэкэнд пользователь может добавить скрипт, изображения, фреймы и т. Д., И моя программа создает функцию javascript с тем же именем, что и обратный вызов управления, который выполняет фрагменты кода, введенные пользователем в бэкэнд (script, iframe) , html и т. д.).
Функция должна запускать все фрагменты HTML / Javascript, которые клиент ввел в CMS. Я не знаю заранее, что пользователь введет, это может быть сценарий, изображение или что-то еще.
У меня проблемы с запуском фрагментов HTML / Javascript.
1) Я не могу создать элемент script и добавить его в DOM, потому что это может быть изображение или что-то еще целиком.
2) document.write работает, но стирает страницу.
3) Я не могу использовать innerHTML, все работает, кроме сценариев, которые я добавил динамически.
4) Я не могу использовать textNode, потому что он не запускает сценарии, когда я добавляю их в DOM.
Каждый раз, когда я добавляю его динамически, вместо выполняемого кода я получаю фактический код, напечатанный в строке.
Может кто-нибудь помочь?
Спасибо.
приписка
Вот пример некоторого 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>