Я пишу PHP Framework , который позволяет разработчикам PHP создавать интерфейсы ExtJS с формами, сетками, табуляциями и меню , используя только классы PHP .
Например, для создания TabPanel * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *1011* '*' * '*. заголовок вкладки.
Для этого я использую следующую функцию Javascript, которая загружает страницу PHP через вызов AJAX и выполняет любые скрипты внутри нее.
function loadViewViaAjax(url) {
Ext.Ajax.request({
url: url,
success: function(objServerResponse) {
var responseText = objServerResponse.responseText;
var scripts, scriptsFinder=/<script[^>]*>([\s\S]+)<\/script>/gi;
while(scripts=scriptsFinder.exec(responseText)) {
eval(scripts[1]);
}
}
});
}
Я часто читаю , как и в ответах на этот вопрос , что обычно нет необходимости использовать eval () , поскольку обычно нужно выполнить то, что вам нужно сделать с помощью eval () достигается другими способами . Я также понимаю, что выполнение сценариев на странице PHP, загруженной через AJAX, представляет угрозу безопасности, которую необходимо заблокировать другими способами, поэтому я хотел бы найти другой, более безопасный способ сделать это, если это возможно.
Какой был бы альтернативный способ динамической загрузки и выполнения javascript с сервера без eval (), чтобы у меня была та же функциональность, что и сейчас, с вышеупомянутым сценарием, т.е. TabPanels, которые загружают и выполняют Javascript из сервер только при нажатии на заголовки вкладок?