post方式加載iframe


最近開發遇到一個問題,數據庫某個字段里面存着整個html代碼。需求是預覽的時候需要可視化,將html直接展示到頁面。

那么問題來了:

1、需要展示的html中的樣式會與外面的頁面沖突。

2、直接加載數據中的html,可能存着一些腳本錯誤。

首先想到的解決辦法是用iframe,但是iframe是直接加載某個頁面。

想到的方法是:

iframe加載一個空頁面,將HTML代碼直接填充到空頁面,然后顯示。

這種方式可以成功。然而因為某些原因html代碼不能再次從數據庫讀取,html代碼參數需要傳遞,然而iframe的src加載是get請求,get請求的參數大小有限制,所以只能用post.

這里需要用form表單的post請求,只需將form的target與iframe的name保持一致:

html代碼:

<form id="myForm" method="post" target="myFrame">
<input type="hidden" name="datas" id="data_param" />
 </form>
<iframe name="myFrame" width="500px" height="200px;"  ></iframe>
$("#data_param").val(dp);
$("#myForm").attr("action", "/java/loadHtmlData");
$("#myForm").submit();

python代碼:

def loadHtmlData(request):
    datas = request.POST.get('datas')
    return render(request, "crawler_result_iframe.html", {
        "datas": datas
  })
crawler_result_iframe.html為空白html

因此這里只需要將form的target屬性的值與frame的name保持一致,即可實現iframe的post方式加載數據。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM