2017-02-11 2 views
0

Я получаю сырец JavaScript тег с сервера:Как добавить сырой тег JavaScript для document.body без JQuery

"<script>alert('hi');</script>" 

Теперь, мне нужно, чтобы добавить его в <body> так, что пожары. Я не могу просто создать новый элемент сценария, потому что эта строка уже содержит часть <script>. Есть ли что-то аналогичное

child = document.createElementFromHTML("<script>alert('hi');</script>"); 
document.body.appendChild(child) 

Спасибо за любую помощь.

EDIT

Вот почему это не является дубликатом, зал мониторы:

Если установить внутренний HTML из DIV быть сценарий не сработает. Мне нужно добавить элемент, сгенерированный только из текста в тело.

EDIT 2

окончательное решение:

window.onload = function() { 
document.body.innerHTML += "<script>alert('hi');</script>"; 
var script = document.scripts[document.scripts.length - 1]; 
var s = document.createElement("script"); 
s.textContent = script.textContent; 
document.body.removeChild(script); 
document.body.appendChild(s); 
} 
+2

* «Я не могу просто создать новый элемент сценария, потому что эта строка уже содержит часть.» * Что делать, если вы удалите эту часть? 'str.replace (/^

0

Таким образом, вы можете вставить <script> тег в вашем HTML

var script = document.body.appendChild(document.createElement('script')); 
 
script.text = 'alert("Hi!");'

+0

это не сработает, потому что я не знаю априори, что такое скрипт, он исходит от сервера как строка. – user1130176

+0

Можете ли вы вернуть сервер только оповещение («Привет!»); без тегов скрипта. Я имею в виду только содержимое скрипта без тегов. – neophyte

+0

нет, но мне интересно, могу ли я использовать замену, чтобы вырезать открывающие и закрывающие теги – user1130176