1

我有一个脚本,它从 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,获取每一帧的加载时间,并绕过“同源”的东西,有人能帮我吗?

4

0 回答 0