Страницы: 1
Уважаемые коллеги, никто не сталкивался с такой проблемой?
В одном документе расположены два 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 уже оба фрейма недоступны....
Отсутствует
А если после appendChild немного подождать? Например:
setTimeout("document.getElementById(frame2.id).contentDocument.designMode = 'On'", 100);
Второй параметр можно сделать и побольше...
Отредактировано Athathoth (07-12-2005 12:32:12)
...она старалась, чтобы я больше времени проводил в разных пионерлагерях и группах продлённого дня - кстати сказать, удивительную красоту последнего словосочетания я вижу только сейчас. (c) Виктор Пелевин
Отсутствует
Например:
setTimeout("document.getElementById(frame2.id).contentDocument.designMode = 'On'", 100);
Второй параметр можно сделать и побольше...
Что-то не помогло, причем опять как-то хитро работает, теперь первый alert выдает off, второй on и опять сбрасывает оба значения в off!
И таймаут ставил здоровый - все равно не пашет
Отсутствует
MadGraph
Что-то не помогло, причем опять как-то хитро работает, теперь первый alert выдает off, второй on и опять сбрасывает оба значения в off!
И таймаут ставил здоровый - все равно не пашет
Ну дык алерты до designMode = 'On' срабатывают в этом случае...
Отредактировано Athathoth (07-12-2005 14:07:58)
...она старалась, чтобы я больше времени проводил в разных пионерлагерях и группах продлённого дня - кстати сказать, удивительную красоту последнего словосочетания я вижу только сейчас. (c) Виктор Пелевин
Отсутствует
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) Виктор Пелевин
Отсутствует
Страницы: 1