1

txt ファイルから URL を読み取り、各 URL をソースとして 1 つの 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 Web サイトを使用して「同じオリジン」の 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