我有一个脚本,它从 txt 文件中读取 URL,然后将每个 URL 作为源放入一个 iframe 中,并一个接一个地用新源加载框架。我这样做是为了计算列表中每个 url 的加载时间。这是我的代码:
$.get("test.txt", function (data) {
var array = data.split(/\r\n|\r|\n/)
var beforeLoad = (new Date()).getTime();
var loadTimes = [];
var beforeTimes = [];
$('#frame_id').on('load', function () {
beforeTimes.push(beforeLoad);
loadTimes.push((new Date()).getTime());
$('#frame_id').attr('src', array.pop());
$.each(loadTimes, function (index, value) {
var result = (value - beforeTimes[index]) / 1000;
if (result < 0) {
result = result * (-1);
}
$("#loadingtime" + index).html(result);
beforeLoad = value;
});
}).attr('src', array.pop());
});
我的问题是,当我获得一个具有 iframe 保护(同源)的 URL 时,我的脚本崩溃并且它不会显示任何加载时间值。经过大量研究后,我找到了一种使用 AnyOrigin 网站将“同源”URL 加载到框架中的方法。我测试了该站点的代码并且它有效:
<script type="text/javascript">
$.getJSON("http://anyorigin.com/get?url="+"google.lt"+"&callback=?", function(data) {
var iframe = $("#frame_id")[0];
var doc = iframe.document;
if(iframe.contentDocument) {
doc = iframe.contentDocument;
} else if(iframe.contentWindow) {
doc = iframe.contentWindow.document;
}
doc.open();
doc.writeln(data.contents);
doc.close();
});
</script>
<iframe id="frame_id"></iframe>
</body>
</html>
我想将我的代码与来自 AnyOrigin 的代码结合起来,所以它会从我的 .txt 文件中加载许多 URL,获取每一帧的加载时间,并绕过“同源”的东西,有人能帮我吗?