У меня есть плагин WordPress, который загружает страницы с помощью AJAX и обеспечивает совместимость с другими плагинами и «виджетами».Каков наилучший способ динамического ввода встроенного JavaScript?
Как прямо сейчас я использую следующий код, чтобы оценить все инлайн JS, который находится внутри блоков контента, которые будут обновлены:
function do_JS(e){
var Reg = '(?:<script.*?>)((\n|.)*?)(?:</script>)';
var match = new RegExp(Reg, 'img');
var scripts = e.innerHTML.match(match);
var doc = document.write;
document.write = function(p){ e.innerHTML = e.innerHTML.replace(scripts[s],p)};
if(scripts) {
for(var s = 0; s < scripts.length; s++) {
var js = '';
var match = new RegExp(Reg, 'im');
js = scripts[s].match(match)[1];
js = js.replace('<!--','');
js = js.replace('-->','');
eval('try{'+js+'}catch(e){}');
}
}
document.write = doc;
}
Я хотел бы быть в состоянии песочнице, ИС немного лучше так что риск конфликтов сведен к минимуму. Одна из моих идей заключалась в том, чтобы динамически создавать и запускать JS внутри него, но я надеялся, что существует немного лучший метод для обеспечения совместимости и повышения безопасности.
К сожалению, этот плагин работает на сотнях сайтов, на которых я вообще не контролирую, поэтому я не могу запускать фрагменты JS через Caja, такие как сайт myspace. Решение должно быть перераспределяемым. –