Проблема с областью «this»
Я хочу создать атрибут html, содержащий скрипт, но не могу управлять «this», чтобы перейти к моему сценарию.
Заранее спасибо!
<!-- html -->
<div script="console.log( 2 + 2 + ' -> ' + this)">
<!-- some html -->
</div>
<script>
function scriptEval() {
var script_elements = [];
document.querySelectorAll("*").forEach(attr => {
if ("script" in attr.attributes) {
script_elements.push(attr);
}
});
script_elements.forEach(element => {
var val = element.attributes.script.value;
element.removeAttribute("script");
val = eval(val);
});
}
scriptEval();
// output
// 4 _ undefined
// I need
// 4 _ <div> ... </div> or whatever the this value is
</script>