2012-07-20 84 views
0

iframe被動態加載到容器中div函數內部。無法使用jquery更新iframe內容

With cc.text(content);我嘗試更新#code內容。

我檢查運行時更改的文本,它已更新,但屏幕上的值保持不變。

我不是一個JavaScript親,所以任何意見,歡迎:

function ShowEditor(content) { 
     var url = "XmlEditor/Editor.htm"; 
     slHost.css('width', '0%'); 
     jobPlanContainer.css('display', 'block'); 
     frame = $('<iframe id="' + jobPlanIFrameID + '" src="' + url + '" class="frame" frameborder="0" />'); 
     frame.appendTo(jobPlanIFrameContainer); 

     $(frame).load(function() { 
      var ifr = frame[0]; 
      var doc = ifr.contentDocument || ifr.contentWindow.document; 
      var jdoc = $(doc); 
      var cc = jdoc.contents().find("#code"); 
      // var tst = cc.text(); 
      // alert(tst); 
      cc.text(content); 
     }); 
    } 

我得到了註釋代碼的文本,但無法更新#CODE內容。

iframe中存在以下HTML,我省略內腳本細節:

<!doctype html> 
<html> 
    <head></head> 
<body> 
<form> 
<textarea id="code" name="code">some texts</textarea> 
</form> 
</body> 
</html> 
+0

我沒有看到任何問題。你確定你的「內容」可以嗎?您是否嘗試在cc.text(content)'之後放置警報?編輯是否可以捕獲並恢復修改? – 2012-07-20 07:16:09

+0

事情是當我檢查文本是否改變時:frame.contents()。find(「#code」).text(content);一切正常,但屏幕上的值保持不變。 – Dmitry 2012-07-20 07:17:30

+0

是的,警報檢查給出正確的值,但屏幕上的值保持不變 – Dmitry 2012-07-20 07:18:55

回答

0

XML編輯器無法讀取超過一次什麼在textarea的多。

一個簡單的解決方案是在javascript中生成所需textarea內容的iframe內容,而不是加載它,然後嘗試更改textarea內容。

實際上(取決於XML編輯器的容量),您可能直接在生成的文本區域中執行此操作,而不是使用整個iframe來執行此操作。

+0

看起來也是我的解決方案。我會稍後嘗試並反饋。 – Dmitry 2012-07-20 07:27:28