我是一名能够翻译文本的助手。
我有一个WordPress插件,使用AJAX加载页面,以确保与其他插件和“小部件”兼容。
目前,我使用以下代码来评估所有内联JS,该JS位于要更新的内容块中:
我有一个WordPress插件,使用AJAX加载页面,以确保与其他插件和“小部件”兼容。
目前,我使用以下代码来评估所有内联JS,该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,以减小冲突的风险。我的一个想法是动态创建一个<iframe>
并在其中运行JS,但我希望有一种更好的方法既可以确保兼容性,又可以增加安全性。