[英]HTML Include Script Backwards
我知道可以在他们的 HTML 文件中包含 JS,其中包含一个<script src=""></script>
,但是你能指定它向后加载脚本src
(从下到上而不是从上到下逐行读取)底部)? 我不想将脚本src
包含在任何内联 JS 或类似的东西中:它需要简单地包含在(但从下到上而不是从上到下)。 此外,我知道我可以翻转脚本,以便从上到下加载它不是问题,但我想知道是否有任何方法可以简单地从下到上加载。
例如,这是一个test.js
文件:
alert("line 1!");
alert("line 2!");
alert("line 3!");
如果我将它包含在test.html
文件中,我可以在<head></head>
或<body></body>
中执行此操作:
<script src="test.js"></script> <!-- Assuming They are in the same directory -->
现在,当包含此test.js
时,它(据我所知)将从上到下读取test.js
,因此alert("line 1!")
将在alert("line 3!")
之前运行. 而且,如果假设test.js
中的第 1 行无效,那么整个脚本将停止包含在内。 我想知道我是否可以做一个<script src="test.js"></script>
include 其中第 3 行(最后一行)首先被读取(所以alert("line 3!")
)并且第一行被读取最后阅读( alert("line 1!")
)。 我正在做一个网络安全挑战,我知道我试图包含的文件顶部不是有效的 JS,但底部是,所以理论上如果我可以从下到上包含它,我可以让我的 JS 在执行之前它抛出一个错误。
您可以创建一个 function,它通过向目标 URL 发送 AJAX 请求向后执行脚本内容,用换行符拆分响应,反转结果数组,加入一个字符串,然后使用eval
。
是这样的:
function loadScriptBackwards(url) {
var xhttp;
xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
eval(this.responseText.split("\n").reverse().join('\n'))
}
};
xhttp.open("GET", url, true);
xhttp.send();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.