Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.02.2012, 19:06
Новичок на форуме
Отправить личное сообщение для alexey980 Посмотреть профиль Найти все сообщения от alexey980
 
Регистрация: 06.02.2012
Сообщений: 6

как заставить выполнить javascript-код, сгенерированный после загрузки страницы?
есть простой html-код:
<div id="player">
   <script>....</script>
</div>
если страница статичная, то вопросов нет. по ходу загрузки страницы исполняется javascript и внутри тега <div id="player"> формируется плеер.

Но как быть, если элемент <div id="player"> добавляется на страницу динамически уже после её загрузки?

1. пробовал такой код:
var newDiv = document.createElement("div"); 
    newDiv.id = "player";
    newDiv.innerHTML = "<script>...</script>";
    document.body.appendChild(newDiv);
но он не дает нужного результата.
новый элемент <div> добавляется, но javascript внутри него не выполняется.

2. пробовал вместо <div> использовать <iframe> и затем загрузить в него javascript как новое окно:
var newiframe = document.createElement("iframe"); 
    newiframe.name = "player";
    document.body.appendChild(newiframe);
var newWindow=window.open('', 'player');
    newWindow.document.write("<script>...</script>");
тоже нифига не выходит.
в iframe ничего не отображается.

Последний раз редактировалось alexey980, 06.02.2012 в 22:15.
Ответить с цитированием
  #2 (permalink)  
Старый 06.02.2012, 21:13
Аватар для Magneto
Люмус, Емаксос Developer!
Отправить личное сообщение для Magneto Посмотреть профиль Найти все сообщения от Magneto
 
Регистрация: 06.05.2010
Сообщений: 677

Самый простой вариант вынести скрипт во внешний файл.
<div id="player">
   <script src="ссылка на скрипт"></script>
</div>
Ответить с цитированием
  #3 (permalink)  
Старый 06.02.2012, 22:12
Новичок на форуме
Отправить личное сообщение для alexey980 Посмотреть профиль Найти все сообщения от alexey980
 
Регистрация: 06.02.2012
Сообщений: 6

Magneto,
этот вариант не подходит. html-страница формируется на основе внешнего XML-документа, который находится на том же сервере. код плеера (в виде javascript) также храниться в XML как текстовый узел. его нужно просто вытащить оттуда, вставить в html и каким-то образом выполнить.
Ответить с цитированием
  #4 (permalink)  
Старый 06.02.2012, 22:54
Лаборант :-)
Отправить личное сообщение для Pavel M. Посмотреть профиль Найти все сообщения от Pavel M.
 
Регистрация: 08.11.2011
Сообщений: 806

может быть это подойдет http://api.jquery.com/jQuery.getScript/
или это http://api.jquery.com/load/
?
Ответить с цитированием
  #5 (permalink)  
Старый 10.02.2012, 02:13
Аспирант
Отправить личное сообщение для KingStar Посмотреть профиль Найти все сообщения от KingStar
 
Регистрация: 25.08.2011
Сообщений: 42

Вместо

newDiv.innerHTML = "<script>...</script>";

попробуй что-то тип того:

newDiv.onclick = function() {  
        
      бла...бла...бла...	
	
}


событие конечно для примера, может и с innerHTML будет тебе счастье
Ответить с цитированием
  #6 (permalink)  
Старый 13.02.2012, 11:44
Новичок на форуме
Отправить личное сообщение для alexey980 Посмотреть профиль Найти все сообщения от alexey980
 
Регистрация: 06.02.2012
Сообщений: 6

вот, как мне удалось разрешить поставленную задачу:
function embedplayer (playerCodeAsText) {
       document.getElementById("wrapper").innerHTML = "<iframe name='iframeplayer'></iframe>";
   var newWindow = window.open("", "iframeplayer");
       newWindow.document.write(playerCodeAsText);
}

var wrapperDiv = document.createElement("div");
    wrapperDiv.id = "wrapper";
    document.body.appendChild(wrapperDiv);

var codeAsText = "<script>" + какие-то манипуляции с содержимым кода + "</script>"

window.addEventListener("load", function () {embedplayer(codeAsTExt);}, false);

фишка была в том, чтобы повесить функцию загрузки динамически создаваемого плеера в iframe на какое-нибудь событие (в моем случае после загрузки основного окна).
Ответить с цитированием
  #7 (permalink)  
Старый 13.02.2012, 14:55
Аватар для Magneto
Люмус, Емаксос Developer!
Отправить личное сообщение для Magneto Посмотреть профиль Найти все сообщения от Magneto
 
Регистрация: 06.05.2010
Сообщений: 677

Правильно иметь на странице статический плеер и ему просто передавать нужные параметры.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как дождаться ПОЛНОЙ загрузки страницы? arma Events/DOM/Window 7 04.11.2009 20:05
Как установить свойство родительской страницы после запуска 2х последов. popup окон? ksl Events/DOM/Window 10 23.08.2009 14:06
Как узнать динамический код страницы? gosha13 Общие вопросы Javascript 5 27.07.2009 13:31
Как выдавать ошибку при сбросе загрузки страницы? AvaGet Общие вопросы Javascript 2 11.12.2008 19:04
Выполнить код после загрузки изображения EugenyK Events/DOM/Window 2 15.07.2008 10:09