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 を読み込み、各フレームの読み込み時間を取得し、「同じオリジン」のものをバイパスします。