這適用於Firefox和Chrome,但不適用於IE8。使用jQuery訪問CKEditor iframe的樣式標籤
<div class="container">
<form action="">
<textarea id="myed" rows="" cols=""></textarea>
</form>
<button id="twiddle">Twiddle CSS</button>
<script type="text/javascript">
$(document).ready(function() {
CKEDITOR.replace('myed', {});
$("#twiddle").click(function() {
var oldstyle = $($($('#myed').parent().find('iframe')[0]).contents()[0]).find('style');
$(oldstyle).append("body { background-color: red; }");
});
});
</script>
我希望它可以將ckeditor的背景變成紅色,在FF/Chrome中可以實現。在IE瀏覽器,它不僅沒有做到這一點,它拋出一個錯誤:
網頁錯誤的詳細信息
用戶代理:Mozilla的/ 4.0(兼容; MSIE 8.0; Windows NT的6.1;三叉戟/ 4.0; SLCC2。 NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729;媒體中心PC 6.0) 時間戳:星期一,2011 7月25日20:52:27 UTC
Message: Unexpected call to method or property access.
Line: 16
Char: 55208
Code: 0
URI: http://10.0.2.2:3000/javascripts/jquery.js?1297871725
的jQuery:1.5的CKEditor :3.6.1
有趣的是,這並不在IE工作: $(oldstyle).after($(「「)); –
由於我建議的方法不適合你,我認爲這個問題可能是用來找到舊式的操作。我認爲也可以避免一些jQuery調用。你能粘貼包含你的textarea#myed的完整html,特別是它的父母嗎?所以試圖找到一個更好的方式來選擇它。 –
嘿大衛,怎麼樣做$('#myed')。parent('body').css('background','red');''twiddle'裏面點擊回調? – stecb