2015-03-24 4 views
-2

Я ищу неинвазивный javascript HTML/CSS/JS-инъекцию на страницу. Я отлично смотрю, как использовать document.write, но сохраняю исходное содержимое, которое было на странице. Таким образом, следующее:Неинвазивный JavaScript-код HTML

javascript: document.write ("blablabla"); - это удаляет все содержимое на странице, я не хочу использовать innerHTML + = для добавления данных.

Любые предложения?

+0

You не следует использовать 'document.write'. Используйте 'document.createElement' для создания новых элементов, используйте функции' document.getElement * 'для запроса родительских элементов, к которым вы хотите добавить. Затем используйте функцию appendChild для этого элемента, чтобы добавить новые элементы. –

+0

Я пытаюсь избежать createElement. – CBMC

+2

Зачем вам избегать 'createElement'? – Mathletics

ответ

-2

document.write всегда будет переписывать всю страницу, насколько я знаю. Один из вариантов - добавить/добавить свой код в div или в нижнюю часть вашего тела.

$(elementObj).append(contents); 
//or 
$(elementObj).prepend(contents); 

Вы можете создать элементElement(), а затем использовать один из приведенных выше методов для ввода кода во вновь созданный элемент.

-1

Если document.write вызывается после события onload для документа, ему необходимо повторно открыть документ - эффективно его обрезать. Хотя вы можете явно вызвать document.write() inline (либо с javascript, непосредственно встроенным в страницу, либо с тегом, который не использует defer/async), это считается плохой практикой, поскольку он блокирует всю другую обработку страницы.

Вы можете inject elements по constructing them in Javascript лично я предпочитаю, чтобы установить innerHTML существующего заполнителя для фрагмента HTML:

<div id='placeholder/></div> 
... 
document.getElementById('placeholder').innerHTML="<h2>hello world!</h2>"; 

(с использованием createElement становится грязной и медленной при создании/инъекционной сложное HTML)

Смежные вопросы