检查页面是否有'sameorigin'

时间:2013-03-04 06:57:55

标签: javascript

我有一个脚本从txt文件获取url并将它们放入一个帧中,计算每个帧加载所花费的时间。一切正常,直到我输入一个url女巫有iframe保护('sameorigin'),然后我的脚本崩溃,并没有给其他网址的结果。

这是我目前的剧本:

<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'保护,我只想跳过任何受保护的网址

搜索解决此问题我在stackoverflow上发现了这个问题 - http://jsfiddle.net/LHjwZ/11/

我根本不理解该代码,但如果我输入受保护的网址(例如google.com),则会返回truefalse,如果我输入的网址没有保护,则返回{{1 }}。所以我假设它以某种方式检测url是否具有'sameorigin'并返回falsefalse(如果有)。我想把那段jsfiddle代码放到我的代码中,但就像我说我不明白代码是如何工作的。

1 个答案:

答案 0 :(得分: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 site