0

我有一个脚本,它从一个 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 代码放入我的代码中,但就像我说的那样,我不明白该代码是如何工作的。

4

1 回答 1

0

该代码使用try...catch语句:

try {
    // Put your regular code here
}
catch(e){
    // put here the code to execute in case of error
    // you can leave the catch section empty
}

有关更多信息,请查看MDN 站点

于 2013-03-04T07:06:53.600 回答