Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 06.02.2013, 03:13
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от Дзен-трансгуманист
А как вы собираетесь клонировать замыкания, а?
Пока не думал - разбираюсь
Начали с чистых объектов... потом вложенные, потом функции
--------------------------------------------------------------
Суть в том - что брауз как то клонирует и фреймворк тоже
Ответить с цитированием
  #12 (permalink)  
Старый 06.02.2013, 04:22
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Обман зрителя с псевдоклонированием фреймворка

1. Ставим скрипт библиотеки во фрейм,
2. ...якобы клонируем frame1.jQuery
3. Удаляем фрейм вместе со скриптом (можно наблюдать удаление - cпецом

Запускаем любые jQuery функции (тут считываю bоdy.html() ( Заметим что фрейма нет)
//Чисто коперфильд (Сам заю, что вру и где
//а хочется реально!
<!DOCTYPE>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
</head>
<body>

<script>

function TestLibFrame() { // 

  function Clone(a) {
    return a;
  }

  window.docThis = frame1.parent.document;
  window.$$ =  Clone(frame1.jQuery); //...якобы клонируем frame1.jQuery
  delete frame1.jQuery;//alert(frame1.jQuery); //...удаляем объект frame1.jQuery

  $$("iframe[name='frame1']",docThis).remove(); //Удаляем фрейм...

  var str = 'Запускаем jQuery на  странице без библиотеки:';
  alert(str +'\n\n' + $$("html",docThis).html());

}  


function Funk0(aa) {
var a='Cтавим javascript - библиотеку во фрейм'
var iframe = aa
var iframeDoc = iframe.contentWindow.document;
var b = iframeDoc.createElement('div');
b.innerHTML=a;//alert(b.innerHTML)
iframeDoc.body.appendChild(b);
var s = iframeDoc.createElement('script');
s.setAttribute("type","text/javascript");
s.src = "http://yandex.st/jquery/1.4.4/jquery.min.js";
//s.setAttribute("onload","parent.TestLibFrame()");
s.onload = function () {setTimeout("TestLibFrame()",4000);}
b.appendChild(s);
}

</script>
<iframe name=frame1 onload="Funk0(this)"></iframe>


</body>
</html>

Последний раз редактировалось Deff, 06.02.2013 в 04:55.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать, чтобы при удалении div браузер не перепрыгивал наверх станицы EvgeniyRRU Events/DOM/Window 4 02.10.2011 12:42
Как правильно подавить событие при подключении своего обработчика? Маэстро Firefox/Mozilla 2 03.09.2011 11:46
Как при наведении на один объект изменять стили других? greysells jQuery 4 06.12.2009 11:00
Как правильно послать XML в POST запросе LowCoder AJAX и COMET 10 15.07.2009 23:20
Как сделать, чтобы 2 ссылки отображались как hover при наведении мышкой на любую? Ava Элементы интерфейса 5 19.05.2009 23:24