Теги script, добавленные с помощью jQuery, не видимого в FireBug

Я добавляю <script type="text/javascript" src="http://somedomain/somescript.js"> к документу направляются с помощью jQuery. Это - код, который я использую:

$(document).ready(function () {
    var s = document.createElement("script");
    s.type = "text/javascript";
    s.src = (document.location.protocol == "https:" ? "https://ssl" : "http://www") + ".google-analytics.com/ga.js";
    $("head").append(s);
});

В то время как сценарий, кажется, работает отлично, я не вижу сценарии в голове, когда я использую FireBug для осмотра заголовка документа. Этот отрывок не показывает добавленный сценарий (сценарии) также:

$('script[src]').each(function(){
    console.log(this.src);
});

Это нормально, или я делаю что-то не так здесь? То, что беспокоит меня, является тем, что я вижу другие сценарии в главном разделе, которые были ленивы/динамично загруженный, но не те, которых я добавил. Также удивление, если нормально загружать сценарии, которые управляют DOM в документе готовая функция.

ОБНОВЛЕНИЕ

Замена кода от:

$("head").append(s);

кому:

document.getElementsByTagName("head")[0].appendChild(s);

решает проблему. Получающийся DOM появляется правильно в FireBug, и jQuery правильно возвращает теги script, которые были добавлены статичные/динамично.

8
задан Salman A 8 December 2012 в 06:49
поделиться

4 ответа

Хорошо, я нашел этот совет на jQuery.com:

> It should be noted that any attempts to append script elements using this
> method will fail silently:
> $('#element').append("<script></script>");

>> Not exactly. Scripts will be evaluated first, and then discarded.
>> So, if you do this:
>> $('#element').append("<script>alert('hello');</script>");
>> You'll see the alert.

. Это, вероятно, означает, что сценарий оценивается, но не вставляется в DOM.

1
ответ дан 6 December 2019 в 00:54
поделиться

Протестируйте его также в Chrome , щелкнув правой кнопкой мыши параметр «Проверить элемент», чтобы использовать полный отладчик (в исходном коде не отображаются изменения скрипта). На вкладке elements HTML должны отображаться изменения в DOM

в реальном времени.
0
ответ дан 6 December 2019 в 00:54
поделиться

Это ошибка в поддержке отладчика Mozilla jsd. Одним из способов решения этой проблемы является сообщение об ошибке, указанной выше:

http://code.google.com/p/fbug/issues/detail?id=1774

Если jquery использовал eval () вместо внедрения тега сценария тогда вы можете отладить это в Firebug.

1
ответ дан 6 December 2019 в 00:54
поделиться

На вкладке NET вы увидите запрос к сценарию, но тег script не будет виден при проверке DOM. Это похоже на ошибку в FireBug.

1
ответ дан 6 December 2019 в 00:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: