0

得到一个脚本,该脚本从 txt 文件中获取 url,并将它们一个接一个地放入 iframe。继承人的脚本:

 <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>

当其中一个 url 具有“同源”保护(例如 google.com)时,我遇到了一个问题,我的问题是它一旦开始加载 google 就不会加载任何其他帧(它卡住了)。有人告诉我尝试try catch为此使用块,但我不知道如何。我如何使用try catch来避免“同源”网址(请注意,我不希望它们加载,我希望它们跳过)。

4

1 回答 1

0

我猜这里

<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()); 
                    try {
                        $('#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;
                        });
                    } catch(ex) {}
                }).attr('src', array.pop());
            });
        </script>

这将包裹您实际将 url 推入“src”属性的位置,从而触发请求。

于 2013-03-05T06:14:28.697 回答