2013-11-29 4 views
1

Я работаю над сайтом, который является редактором онлайн-кода. Пользователи могут загружать страницу, где они могут набирать код HTML, который затем отображается (как веб-формат) в небольшом кадре, который представляет скомпилированную веб-страницу.Окно ответа редактора кода

Фрейм, что HTML отображается в выглядит следующим образом:

#responseWindow { 
    width: 100%; 
    height: 200px; 
    background-color: white; 
    margin-top: 30px; 
    margin-bottom: 30px; 
    overflow: auto; 
    padding-left: 8px; 
    padding-right: 8px; 
    padding-top: 10px; 
    padding-bottom: 10px; 
} 

Javascript, который передает код из редактора в responseWindow выглядит следующим образом:

editor.getSession().on('change', function() { 
    document.getElementById('responseWindow').innerHTML = editor.getValue(); 
}); 

Обычно всё напечатал остается внутри этого фрейма, но если пользователь дает фиксированное позиционирование div, тогда текст не остается в пределах кадра и появляется где-то еще на странице. Например:

<p style="top: 100px; right: 10px;">Hello world</p> 

Затем текст Hello World находится не в кадре. Мой вопрос заключается в том, как я могу сделать некоторый тип независимого пространства для кода, который будет отображаться? Как я могу сделать рендеринг кода моих пользователей в поле/рамке, чтобы они могли просмотреть, как он выглядит?

+0

Если вы не знаете о рисках безопасности, связанных с этим, вы должны понимать, что это очень плохая идея. – Joe

+0

Я готов решать любые риски безопасности. – user2970037

ответ

1

#responseWindow Набора для position: relative

Позиционированных элементов по сравнению с их ближайшим расположеннымами предка. Прямо сейчас ваша позиция #responseWindow равна static, которая не считается «позиционированной».

+0

Это работает в определенных случаях, но что, если пользователь устанавливает свой контент в фиксированную позицию. Тогда содержимое может выйти из кадра? – user2970037

+0

@ user2970037 Да, элемент, расположенный как «фиксированный», будет располагаться всегда по отношению к окну просмотра браузера. –

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