Как получить доступ к динамически загружаемому элементу в jquery или javascript? - PullRequest
1 голос
/ 02 апреля 2011

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

Так скажем, например, элемент скрипта создается с

var script=document.createElement('script');
script.type='text/javascript';
script.src='somejsfile.js';
    $("head").append(script);

, и если я делаюпосле этого:

var doc = document.documentElement;
var scripts = doc.getElementsByTagName("script");
for (var idx in scripts)
{
    var s = scripts[idx];
    if (!s.src) continue;
    s = s.src;
    alert(s);
}

Почему я не вижу динамически добавленный скрипт?Я пробовал это в Jquery с теми же результатами.

Кто-нибудь знает, как этого можно достичь?возможно, с обновлением dom?

* Просто чтобы прояснить: все, что я хочу, это пройтись по dom и найти атрибуты 'src' элементов 'script', даже те, которые динамически загружаются.

Ответы [ 4 ]

3 голосов
/ 02 апреля 2011

Вы добавили его в дом ...?

var script=document.createElement('script');
script.type='text/javascript';
script.src='somejsfile.js';

$(script).appendTo("head"); //or body
1 голос
/ 02 апреля 2011

Сначала нужно как-то добавить динамически созданный скрипт в DOM. Вот надежный способ:

var ref=document.getElementsByTagName('script')[0],
    script=document.createElement('script');
script.type='text/javascript';
script.src='somejsfile.js';
ref.parentNode.insertBefore(script, ref);
0 голосов
/ 02 апреля 2011

Вы добавляете его с помощью jquery, почему бы не найти его с помощью jQuery?

var scripts = $ ('script')

или даже

var scripts = $ ('script [src]')

0 голосов
/ 02 апреля 2011

Похоже, что NeXXeuS правильный.Вы также можете добавить новый элемент без jQuery:

var newNode = document.createElement("script");
newNode.type = "text/javascript";
newNode.src = "somescript.js";
document.body.appendChild(newNode);

Попробуйте запустить его в консоли JavaScript в Firefox или Chrome, и вы увидите, что новый сценарий будет добавлен в тег body в этом случае.

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