我有一个脚本,它从一个 txt 文件中获取 url 并将它们放入一个框架中,计算每个框架加载所花费的时间。一切正常,直到我输入一个具有 iframe 保护('sameorigin')的 url,然后我的脚本崩溃并且没有给出其他 url 的结果。
这是我当前的脚本:
<script type="text/javascript">
$.get("imones.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());
});
</script>
我不想绕过 'sameorigin' 保护,我只想跳过任何受保护的 url。
为了解决这个问题,我在 stackoverflow 上找到了这个 - http://jsfiddle.net/LHjwZ/11/
我根本不理解该代码,但如果我输入一个受保护的 url(例如 google.com),它会返回 a truefalse
,如果我输入没有保护的 url 它会返回一个falsefalse
. 所以我假设它以某种方式检测 url 是否有'sameorigin',true
如果有则返回。我想将那段 jsfiddle 代码放入我的代码中,但就像我说的那样,我不明白该代码是如何工作的。