Полезная информация

Общайтесь со знакомыми и друзьями в нашей группе в Контакте.

№107-12-2005 12:11:43

MadGraph
Участник
 
Группа: Members
Зарегистрирован: 07-12-2005
Сообщений: 6

Проблемы с iframe и designMode

Уважаемые коллеги, никто не сталкивался с такой проблемой?
В одном документе расположены два iframe. Для них обоих нужно включить designMode. Если реализовать это прямой версткой html, то все работает. Вот пример:
test1.html

Выделить код

Код:

<html>
<head>
	<title></title>
<script>
function initEditor()
{
	document.getElementById('test1').contentDocument.designMode = 'On';
	document.getElementById('test2').contentDocument.designMode = 'On';
}
</script>
</head>

<body onLoad="initEditor();">
<div id="ed1"><iframe id="test1"></iframe></div>
<div id="ed2"><iframe id="test2"></iframe></div>
<a href=# onclick="alert(document.getElementById('test1').contentDocument.designMode);">1-й iframe</a>
<br />
<a href=# onclick="alert(document.getElementById('test2').contentDocument.designMode);">2-й iframe</a>

</body>
</html>

Если же попробовать сгенерить iframe JavaScript-ом, то designMode сбрасывается на off, причем ведет себя все это по разному в разных версиях FF:
test2.html

Выделить код

Код:

<html>
<head>
<title></title>
<script>
function initEditor ()
{
		var frame1 = document.createElement('iframe');
		frame1.id = 'test1';
		document.getElementById('ed1').appendChild(frame1);
		document.getElementById(frame1.id).contentDocument.designMode = 'On';
		var frame2 = document.createElement('iframe');
		frame2.id = 'test2';
		document.getElementById('ed2').appendChild(frame2);
		document.getElementById(frame2.id).contentDocument.designMode = 'On';
		alert(document.getElementById('test1').contentDocument.designMode);
		alert(document.getElementById('test2').contentDocument.designMode);
}
</script>
</head>

<body onLoad="initEditor();">
<div id="ed1"></div>
<div id="ed2"></div>
<a href=# onclick="alert(document.getElementById('test1').contentDocument.designMode);">1-й iframe</a>
<br />
<a href=# onclick="alert(document.getElementById('test2').contentDocument.designMode);">2-й iframe</a>

</body>
</html>

В FF, сборка Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:1.7.10) Gecko/20050717 Firefox/1.0.6, нижний фрейм, несмотря на то, что у него сбрасывается designMode в off, остается доступным к редактированию, а в сборке Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8) Gecko/20051107 Firefox/1.5 уже оба фрейма недоступны....

Отсутствует

 

№207-12-2005 12:30:08

Azathoth
Участник
 
Группа: Extensions
Откуда: Хабаровск
Зарегистрирован: 02-02-2005
Сообщений: 2692

Re: Проблемы с iframe и designMode

А если после appendChild немного подождать? Например:
setTimeout("document.getElementById(frame2.id).contentDocument.designMode = 'On'", 100);
Второй параметр можно сделать и побольше...

Отредактировано Athathoth (07-12-2005 12:32:12)


...она старалась, чтобы я больше времени проводил в разных пионерлагерях и группах продлённого дня - кстати сказать, удивительную красоту последнего словосочетания я вижу только сейчас. (c) Виктор Пелевин

Отсутствует

 

№307-12-2005 12:50:33

MadGraph
Участник
 
Группа: Members
Зарегистрирован: 07-12-2005
Сообщений: 6

Re: Проблемы с iframe и designMode

Athathoth пишет

Например:
setTimeout("document.getElementById(frame2.id).contentDocument.designMode = 'On'", 100);
Второй параметр можно сделать и побольше...

Что-то не помогло, причем опять как-то хитро работает, теперь первый alert выдает off, второй on и опять сбрасывает оба значения в off!
И таймаут ставил здоровый - все равно не пашет :(

Отсутствует

 

№407-12-2005 14:06:20

Azathoth
Участник
 
Группа: Extensions
Откуда: Хабаровск
Зарегистрирован: 02-02-2005
Сообщений: 2692

Re: Проблемы с iframe и designMode

MadGraph

Что-то не помогло, причем опять как-то хитро работает, теперь первый alert выдает off, второй on и опять сбрасывает оба значения в off!
И таймаут ставил здоровый - все равно не пашет

Ну дык алерты до designMode = 'On' срабатывают в этом случае...

Отредактировано Athathoth (07-12-2005 14:07:58)


...она старалась, чтобы я больше времени проводил в разных пионерлагерях и группах продлённого дня - кстати сказать, удивительную красоту последнего словосочетания я вижу только сейчас. (c) Виктор Пелевин

Отсутствует

 

№507-12-2005 14:15:40

Azathoth
Участник
 
Группа: Extensions
Откуда: Хабаровск
Зарегистрирован: 02-02-2005
Сообщений: 2692

Re: Проблемы с iframe и designMode

Выделить код

Код:

function initEditor ()
{
        var frame1 = document.createElement('iframe');
        frame1.id = 'test1';
        document.getElementById('ed1').appendChild(frame1);
        setTimeout("document.getElementById('"+frame1.id+"').contentDocument.designMode = 'On'", 100);
        
        var frame2 = document.createElement('iframe');
        frame2.id = 'test2';
        document.getElementById('ed2').appendChild(frame2);
        setTimeout("document.getElementById('"+frame2.id+"').contentDocument.designMode = 'On'", 200);
}

Без алертов!

Отредактировано Athathoth (07-12-2005 14:19:55)


...она старалась, чтобы я больше времени проводил в разных пионерлагерях и группах продлённого дня - кстати сказать, удивительную красоту последнего словосочетания я вижу только сейчас. (c) Виктор Пелевин

Отсутствует

 

№607-12-2005 15:11:03

MadGraph
Участник
 
Группа: Members
Зарегистрирован: 07-12-2005
Сообщений: 6

Re: Проблемы с iframe и designMode

Спасибо за помощь!
Удачи.

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]