Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.04.2019, 16:12
Новичок на форуме
Отправить личное сообщение для gpi65 Посмотреть профиль Найти все сообщения от gpi65
 
Регистрация: 14.03.2017
Сообщений: 4

Получить класс body родительского окна из iframe
Здравствуйте.
Мне нужно скриптом, который выполняется в iframe получить класс тэга body родительского окна.
Пытаюсь делать так:
var cl = window.parent.document.body.getAttribute("class");

но получаю ошибку
Blocked a frame with origin ... from accessing a cross-origin frame.
Добавил в iframe
sandbox="allow-scripts allow-same-origin"

Вроде бы это должно разрешить выполнение скриптов, находящихся внутри iframe в родительском окне. Но ничего не меняется, та же ошибка.

Добавил для контроля
console.log("window = ", window);
console.log("window.parent = ", window.parent);
console.log("window.parent.document = ", window.parent.document);
console.log("window.parent.document.body. = ", цindow.parent.document.body);

Получил
window = Window {postMessage: ƒ, blur: ƒ, focus: ƒ, close: ƒ, parent: global, …}
window.parent = global {window: global, self: global, location: Location, closed: false, frames: global, …}

В firefox ошибка
Permission denied to access property "document" on cross-origin object

В Chrome ошибка
Blocked a frame with origin ... from accessing a cross-origin frame.

Как мне получить нужную мне информацию?
Ответить с цитированием
  #2 (permalink)  
Старый 05.04.2019, 12:46
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,209

Сообщение от gpi65
Как мне получить нужную мне информацию?
Похоже никак...
Видать страница-то не твоя. Или с содержимым ифрейма в разных доменах...
Сообщение от gpi65
Добавил в iframe
s
andbox="allow-scripts allow-same-origin"
Видно политика безопасности сильнее этих опций...
Ответить с цитированием
  #3 (permalink)  
Старый 05.04.2019, 13:29
Новичок на форуме
Отправить личное сообщение для gpi65 Посмотреть профиль Найти все сообщения от gpi65
 
Регистрация: 14.03.2017
Сообщений: 4

Да, родительское окно не мое.
Но сейчас для эксперимента сделал html файл с таким содержимым:
<!DOCTYPE_html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <meta charset="utf-8">
		
	</head>
	<body class="www theme-dark ccc">
		<iframe src="путь к java web приложению, запущенному под Tomcat" sandbox="allow-same-origin allow-scripts allow-top-navigation" style="width:600px; height:600px"></iframe>
	</body>
</html>


В приложении под томкатом запускается следующий скрипт:
<script type="text/javascript">		
	var theme = "";
	console.log({window: window});
	console.log("window = ", window);
	console.log("window.parent = ", window.parent);
	console.log("window.top = ", window.top);
	console.log("window.top.body = ", window.top.body);
	var cl = window.parent.document.body.getAttribute("class");
	console.log("cl = " + cl);
	if(cl == null)
		cl = "theme-dark";
	var arr = cl.split(" ");
	for(i = 0; i < arr.length; i++){
		console.log(arr[i].substring(0,6));
		console.log("Проверка = " + (arr[i].substring(0,6) == "theme-"));
		if(arr[i].substring(0,6) == "theme-"){
			theme = arr[i].substring(6);
			break;
		}
	}
         location.href = "/theme/" + theme;
</script>


Ошибка та же самая
Ответить с цитированием
  #4 (permalink)  
Старый 09.04.2019, 07:24
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,209

Сообщение от gpi65
Ошибка та же самая
Значит безопасность не даст тебе осуществить задуманное...
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавить к body класс при открытии модального окна maxg5 jQuery 8 20.02.2018 19:55
получить код iframe arahmanov Events/DOM/Window 1 12.03.2016 19:22
Как получить то, что выводит на экран запущеное IFrame приложение Вконтакте? Vampire Общие вопросы Javascript 3 03.09.2013 12:07
Получить размеры рабочей области окна в Chrome unclechu Events/DOM/Window 1 13.09.2011 02:37
Координаты body относительно окна при margin auto varanio Events/DOM/Window 2 19.02.2010 10:28