如何处理 XMLHttpRequest 下载文件中的 javascript? [复制]
Posted
技术标签:
【中文标题】如何处理 XMLHttpRequest 下载文件中的 javascript? [复制]【英文标题】:How to process javascript from XMLHttpRequest donwnloaded file? [duplicate] 【发布时间】:2017-04-13 13:09:39 【问题描述】:我想从下载的html
文件中执行 javascript。我使用 XMLHttpRequest
来获取 html 响应。
function load2element()
localStorage.setItem("geadele", "cool variable is passed");
var client = new XMLHttpRequest();
client.open('GET', '/geadele/geadele/gesurvey.html');
client.onreadystatechange = function()
el.innerHTML = client.responseText; // << file with javascript
client.send();
导入的gesurvey.html
包含用于执行的javascript代码:
<script>
console.log("From gesurvey.html");
console.log(localStorage.getItem("geadele")); // should "cool variable is passed"
</script>
<div>I am survey</div>
【问题讨论】:
***.com/questions/2592092/… 你使用 XMLHttpRequest#onreadystatechange 注定要失败——你需要学习如何使用 XMLHttpRequest 【参考方案1】:function load2element()
localStorage.setItem("geadele", "cool variable is passed");
var client = new XMLHttpRequest();
client.open('GET', '/geadele/geadele/gesurvey.html');
client.onreadystatechange = function()
var regex = /<script\b[^>]*>([\s\S]*?)<\/script>/g;
var scriptContent = regex.exec(client.responseText);
if (scriptContent.length)
var scriptTbExecuted = '"use strict"; ' + scriptContent[1];
eval(scriptTbExecuted);
client.send();
但是,执行 eval 是危险的。严格模式消除了一些有害行为,但您需要阅读 strict mode 中的 eval 信息,考虑您想要的内容和该脚本的内容。
【讨论】:
啊,HTML 上的旧正则表达式 - 我听说 Tony's hooves 您可以在不使用 eval 的情况下执行上述操作,并且允许多个脚本标签,甚至允许具有 src 属性的脚本标签,并且无需调用 ZA̡͊͠͝LGΌ以上是关于如何处理 XMLHttpRequest 下载文件中的 javascript? [复制]的主要内容,如果未能解决你的问题,请参考以下文章