Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 21.01.2020, 15:24
Новичок на форуме
Отправить личное сообщение для vaisan Посмотреть профиль Найти все сообщения от vaisan
 
Регистрация: 06.01.2017
Сообщений: 5

Либо я, либо Вы не поняли. простой клик типа: onclick="javascript: alert('OK');" срабатывает, но если вызовете функцию onclick="javascript:myFynk();" описанную на подгружаемой странице , она не работает
Ответить с цитированием
  #12 (permalink)  
Старый 21.01.2020, 15:30
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,709

Manyasha, не следует использовать этот элемент не по назначению. Используйте вместо этого <iframe>.

vaisan, hyvää päivää!. Вам следует вставить элемент на страницу и выполнить скрипты
function XHR(filename) {
	fetch(filename).then(function (response) {
		return response.text();
	}).then(function(code) {
		var document = new DOMParser().parseFromString(code, "text/html");
		return document.documentElement;
	}).then(function(documentElement) {
		var ds = document.getElementById("divSource");
		ds.textContent = "";
		ds.appendChild(documentElement);
		Array.from(documentElement.querySelectorAll("script"))
			.forEach(function(script) {
				setTimeout(eval, 0, script.textContent);
			});
	});
};


vaisan, подход, который вы используете, имеет кучу проблем — если вы захотите завести состояние, то оно будет стираться из скрипта при каждой новой загрузке файла, и пр.

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

Последний раз редактировалось Malleys, 21.01.2020 в 15:40.
Ответить с цитированием
  #13 (permalink)  
Старый 21.01.2020, 17:44
Новичок на форуме
Отправить личное сообщение для vaisan Посмотреть профиль Найти все сообщения от vaisan
 
Регистрация: 06.01.2017
Сообщений: 5

Moi, professori Malleys
Paljon kiitoksia!!!
Невероятно, но Ваш код сработал.
Правильно ли я понимаю, что нужен двойной проход по загружаемому файлу:
1. загрузка только html элементов
и затем
2. загрузка всех скриптовых
и если нужны css, то
3. загрузка стилевых элементов

Меня только немного смутила в Вашем коде чистка ds.textContent = "";
Разве при этом не удалится содержимое innerHtml/

Последний раз редактировалось vaisan, 21.01.2020 в 17:48.
Ответить с цитированием
  #14 (permalink)  
Старый 21.01.2020, 18:19
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,709

vaisan, функция, которую я вам писал, загружает HTML-документ и помещает её на страницу (вместе со всеми картинками, скриптами, стилями и пр.). Всё применяется кроме скриптов, которые объявлены <script>-ом.

Поэтому после того, как документ помещён на страницу, там нужно найти все скрипты и выполнить их. (В примере сделано при помощи eval)

Сообщение от vaisan
загрузка стилевых элементов
Стили применяются так и так!

Сообщение от vaisan
Меня только немного смутила в Вашем коде чистка ds.textContent = "";
Если такое не сделать, то новое содержимое добавится к тому, что уже есть в элементе divSource.

Сообщение от vaisan
Разве при этом не удалится содержимое innerHtml/
Да! Старое удаляется, новое добавляется.

Сообщение от vaisan
Moi, professori Malleys
Paljon kiitoksia!!!
Olen iloinen voidessani auttaa sinua! Itse asiassa puhun viroa, mutta tämä suomi on erittäin ymmärrettävä. Terveisiä Virosta!
Ответить с цитированием
  #15 (permalink)  
Старый 22.01.2020, 06:11
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 12,882

Сообщение от Manyasha
а чем плох тег object?
Теги они не плохие и не хорошие... У них есть синтаксис и некое описание из букваря про их назначение и поведение на странице...
Ответить с цитированием
  #16 (permalink)  
Старый 24.01.2020, 14:53
Новичок на форуме
Отправить личное сообщение для vaisan Посмотреть профиль Найти все сообщения от vaisan
 
Регистрация: 06.01.2017
Сообщений: 5

Оказалось что срабатывает не
documentElement.children[0].style.backgroundColor = "#FFFFCC";//или
documentElement.firstChild.style.backgroundColor = "#FFFFCC"; //children[0] = head
,
а этот код
documentElement.children[1].style.backgroundColor = "#FFFFCC";  // children[1] = body

Последний раз редактировалось vaisan, 24.01.2020 в 15:00.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
клик и событие работает клик и это событие не работает Trues Элементы интерфейса 3 27.05.2015 09:28
Nodejs, busboy, загрузка нескольких файлов, не корректно вызывается событие 'finish' master_alf AJAX и COMET 1 07.10.2014 10:08
Событие click Гробовщик jQuery 1 31.07.2013 06:28
Как правильно подавить событие при подключении своего обработчика? Маэстро Firefox/Mozilla 2 03.09.2011 10:46
Обращение к стилю(Спойлер) Кирюха =) Элементы интерфейса 3 29.07.2011 13:50