JQuery IE8 выпуск - PullRequest
       6

JQuery IE8 выпуск

0 голосов
/ 10 августа 2011

IE8 выдает ошибку на 4-й строке.

jQuery('#list script').each(function() {

    var script=document.createElement('script');
    script.type='text/javascript';
    jQuery(script).text(jQuery(this).text()); //Error in IE8  does the field editing
    document.body.appendChild(script);
}).remove();

Ошибка jquery в подпрограмме:

append: function() {
    return this.domManip(arguments, true, function( elem ) {
        if ( this.nodeType === 1 ) {
            this.appendChild( elem );
        }
    });

Ответы [ 4 ]

3 голосов
/ 10 августа 2011

Вам не нужно заново создавать элементы скрипта или делать все это явное удаление. Вы можете просто сделать следующее:

jQuery('#list script').appendTo('body');
1 голос
/ 10 августа 2011

почему вы не используете jquery полностью?

jQuery('#list script').each(function() {
    jQuery('<script></script>')
        .attr('type','text/javascript')
        .text(jQuery(this).text())
        .appendTo(jQuery('body'));
}).remove();
1 голос
/ 10 августа 2011

как насчет использования jquery немного больше ...

jQuery('#list script').each(function() {
    jQuery('<script type="text/javascript" />').text(jQuery(this).text()).appendTo(jQuery('body'));
}).remove();
0 голосов
/ 10 августа 2011

Предположение, что это исключение безопасности, поскольку вы ничего не перечислили.

Хотя без вопросов, объясняющих точную строку (в процедуре jquery) и точное исключение, это всего лишь удар в темноте.

Возможно, вы обращаетесь к скрипту, который находится за пределами домена страницы и поэтому не позволяет вам получить доступ к его тексту.

Это также может быть способ создания тега скрипта.

Я бы предложил что-то более краткое:

$('#list script').each(function() {
    $('<script>').text($(this).text()).appendTo($(document.body));
})
.remove();

Примечание. Я пропустил тип, предполагая, что вы используете html5, если нет, то при желании вы можете добавить его туда

...