我有一个脚本从txt文件读取URL,然后将每个URL放入一个iframe作为源,一个接一个地加载具有新源的帧。我这样做是为了计算列表中每个网址的加载时间。这是我的代码:
$.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文件中加载许多网址,获取每个框架的加载时间,并绕过“同源”的东西,任何人都可以帮助我?