tp5 iframe下載文件問題記錄

背景:

最近在二開一個項目,需要下載模板的需求。

開始:

不知怎麼的最後還是用了網上的一個方案就是用iframe 給src賦值就行了。

我是用了這個,後來發現個問題,就是請求完一次以後,地址欄就開始有undefined的東西,然後刷新頁面就會提示頁面出錯,所以就必須在src賦值以後,地址欄要恢復原來的地址。

我後來去看了下控制檯console,誰知報Uncaught TypeError: Cannot read property 'url' of null。我後來試了下,該個不存在的地址,它首先會報404,然後接着報上面提到的那個錯誤,所以我猜,應該就是加入這個地址不是一個有用的頁面,就應該會報這個錯誤。然後我就用了個setTimeout 1s以後再講地址欄恢復。

具體代碼如下

<iframe src="" height="0" width="0"></iframe>

<script type="text/javascript">


    $('iframe').attr('src','./');
    $('.getmodel').click(function(){
        var shopId = $("[name='shop_id']").val();
        if(shopId==34){
            var path = './model1ext.xls';
        }else{
            var path = './model1.xls';
        }
        setTimeout(function(){
            top.location.href='http://yao.ktvit.cn/admin#?area=/miner/store/excel_in/shop_id/{$shop_id}';
        },1000);//這個請求 成功以後就可以恢復父頁的鏈接,請求文件大小和請求成功時間沒有關係
    })
</script>

因爲我試了下0s的時候,這個下載完以後,地址欄不會恢復,會將一個錯誤的地址遺留在地址欄那裏。所以就弄了1s。具體這當中的原因我也不清楚,希望有興趣的學者,可以留下評論與我一起探討。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章