Доступ к тегам стилей iframe в CKEditor с помощью jQuery - PullRequest
0 голосов
/ 26 июля 2011

Это работает в Firefox и Chrome, но не в IE8.

<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; Trident / 4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0 ) Отметка времени: понедельник, 25 июля 2011 г. 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

Ответы [ 2 ]

1 голос
/ 26 июля 2011

Примерно так будет проще реализовать:

<textarea id="myed">body { background : red; }</textarea> <!-- here you will set your ckeditor -->

<button id="twiddle">update css</button>

и jQuery:

$('#twiddle').click(function(){

    $('#customStyle').remove(); //if I already have set customStyle, remove it

    $("<style id='customStyle' type='text/css'>"+$('#myed').val()+"</style>").appendTo('head'); //add the new style to the current document head

});

http://jsfiddle.net/steweb/67dXN/ или http://jsfiddle.net/67dXN/1/ (keyup, живое обновление)

0 голосов
/ 26 июля 2011

Разве метод append не предназначен для вставки узлов DOM в качестве последнего потомка указанного элемента / ов?

http://api.jquery.com/append

Я думаю, что вы могли быискать - это метод .html.

$(oldstyle).html( $(oldstyle).html() + " body { background-color: red; }" );

Таким образом, вы добавите новый HTML к уже существующему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...