|
|
|
| У меня есть 2 iframe, которые находяться один, под одним. Как можно релаизовать изменение их размера, причём одновременное? | |
|
|
|
|
|
|
|
для: @ndry
(12.02.2006 в 05:07)
| | document.all.id_фрейма.style.offsetHeight | |
|
|
|
|
автор: EVG (13.02.2006 в 14:21) |
|
|
для: 12345
(12.02.2006 в 16:00)
| | Есть вот такая конструкция
**************************
‘<hr/>’
‘<iframe id="f1" src="bigtext.htm" width="100%" height="100" ‘
‘frameborder="no" scrolling="no"’
‘onload =reheight("f1","f1.onload")’
‘onresize =reheight("f1","f1.onresize")’
‘onresizeend =reheight("f1","f1.onresizeend")’
‘onpropertychange=reheight("f1","f1.onpropertychange")’
‘></iframe>’
‘<hr/>’
‘<script>’
‘var w1=open();’
‘function reheight(name,comment){‘
‘ w1.document.write(comment+"<BR>");’
‘ var f=document.getElementById(name);’
‘ if(f.height!=f.contentWindow.document.body.scrollHeight)’
‘ f.height=f.contentWindow.document.body.scrollHeight;’
‘}’
‘</script>’
**************************
где bigtext.htm просто любой текст побольше.
Для Microcoft Explorer все работает, при загрузке (onload) величина height у iframe увеличивается, чтобы вместить весь bigtext.htm, а когда уменьшаем-увеличиваем ширину окна (onresize), height опять само-настраивается, чтобы влез весь bigtext.htm. В Mozilla и в Firefox событие onload срабатывает, height само-настраивается, а события onresize, onresizeend, onpropertychange не срабатывают ни одно. Что делать, как заставить iframe само-настраивается в Firefox при уменьшении-увеличении ширины окна? | |
|
|
|
|
|
|
|
для: EVG
(13.02.2006 в 14:21)
| | > как заставить iframe само-настраивается в Firefox при уменьшении-увеличении ширины окна?
была высота, теперь ширина?
Пример неудобен для запуска, поэтому помогаю советом:
IE=document.all!=null;
document.getElementById('f1').style.offsetWidht=IE?document.body.scrollWidht :document.width;
а там сами прикручивайте. | |
|
|
|
|
автор: EVG (13.02.2006 в 18:32) |
|
|
для: 12345
(13.02.2006 в 15:51)
| | Дело не в том, что сделать, а нужные события не срабатывают в Firefox | |
|
|
|
|
|
|
|
для: EVG
(13.02.2006 в 18:32)
| | А не в том, что не использован document.width ? См.
fgdfg
<script>
onresize=function(){alert(document.all?document.body.scrollWidth :document.width);}
</script>
|
| |
|
|
|
|
автор: EVG (14.02.2006 в 04:37) |
|
|
для: 12345
(13.02.2006 в 19:19)
| | дело не в этом
В Firefox не хотят срабатывать события onresize, onresizeend, onpropertychange при изменении размеров окна и соответственно фрейма. А если не срабатывают события, то и никак не поменять размеров iframe, не по таймеру же время от времени проверять размеры iframe.
Если Вам не нравится пример с апострафами, то вот без них. Попробуйте поизменяйте мышкой ширину окна в IE и FF, сразу увидите что к чему
<!-----
<body>
<hr/>
<iframe id="f1" src="bigtext.htm" width="100%" height="100" frameborder="no"
scrolling="no"
onload =reheight("f1","f1.onload")
onresize =reheight("f1","f1.onresize")
onresizeend =reheight("f1","f1.onresizeend")
onpropertychange=reheight("f1","f1.onpropertychange")
></iframe>
<hr/>
<script>
var w1=open();
function reheight(name,comment){
w1.document.write(comment+"<BR>");
var f=document.getElementById(name);
if(f.height!=f.contentWindow.document.body.scrollHeight)
f.height=f.contentWindow.document.body.scrollHeight;
}
</script>
<script>
window.onload ='reheight("f1","f1.onload")';
window.onresize ='reheight("f1","f1.onresize")';
window.onresizeend ='reheight("f1","f1.onresizeend")';
window.onpropertychange='reheight("f1","f1.onpropertychange")';
</script>
</body>
--> | |
|
|
|