亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將當前 iframe 內容導出為 HTML 文件

將當前 iframe 內容導出為 HTML 文件

蠱毒傳說 2021-12-02 19:54:41
事情就是這樣 - 我正在嘗試創建一種電子郵件簽名生成器。大部分的索引文件,都是純 HTML 代碼 + 微小的 javascript。在索引文件中,我將電子郵件簽名模板作為 iframe/email_signature.html 文件嵌入。所以它看起來如下:<iframe src="email_signature.html" width="100%" height="350" frameborder="0" id="testing" name="emailSignature"></iframe>然后我嘗試通過執行以下代碼來下載此 iframe 的當前內容:$(document).ready(function() {        const innerFrame = document.getElementById('testing').contentWindow.document.body.innerHTML;    $("#cmd").click(function(){        exportFile('new-file.html', $innerFrame.innerHTML);    }); });但它不起作用。這是示例小提琴:https://jsfiddle.net/py1tojmc/我在這里做錯了什么?
查看完整描述

2 回答

?
滄海一幻覺

TA貢獻1824條經驗 獲得超5個贊

是的,看起來按鈕事件不會觸發。但可能是跨源安全:

SecurityError: Permission denied to access property "document" on cross-origin object

但這可能只是 jsfiddle,你能放一個alert('cmd button works');just 來確保你的按鈕觸發嗎?


查看完整回答
反對 回復 2021-12-02
?
狐的傳說

TA貢獻1804條經驗 獲得超3個贊

從我在打開 jsfiddle 的開發控制臺中看到的內容來看,我沒有看到任何“事件”附加到您的下載按鈕上。 

http://img1.sycdn.imooc.com//61a8b42500011cd518490891.jpg

我不能告訴你為什么會發生這種情況(我不是那個專家),但也許調用以.contentWindow.document.body.innerHTML;某種方式將 DOM 上下文更改為 iframe(只是猜測),而且您似乎無法再訪問按鈕 ID #cmd。


嘗試像這樣更改您的代碼,看看它是否有效:


$(document).ready(function() {

    $("#cmd").click(function(){

        const innerFrame = document.getElementById('testing').contentWindow.document.body.innerHTML;

        exportFile('new-file.html', $innerFrame.innerHTML);

    }); 

});


查看完整回答
反對 回復 2021-12-02
  • 2 回答
  • 0 關注
  • 546 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號