habe ein modul gebastelt von dem ich glaube daß es vieleicht dem ein oder anderen weiterhelfen kann.
mit diesem modul ist es möglich die größe eines iFrames an den inhalt der geladenen Seite anzupassen (also keine height="xx" angabe erforderlich.
hier also der quelltext:
CODE FÜR DEN HEAD DES LAYOUTS:
Code: Alles auswählen
<script type="text/javascript">
/***********************************************
* IFrame SSI script II- © Dynamic Drive DHTML code library (http://www.dynamicdrive.com)
* Visit DynamicDrive.com for hundreds of original DHTML scripts
* This notice must stay intact for legal use
***********************************************/
//Input the IDs of the IFRAMES you wish to dynamically resize to match its content height:
//Separate each ID with a comma. Examples: ["myframe1", "myframe2"] or ["myframe"] or [] for none:
var iframeids=["myframe"]
//Should script hide iframe from browsers that don't support this script (non IE5+/NS6+ browsers. Recommended):
var iframehide="yes"
var getFFVersion=navigator.userAgent.substring(navigator.userAgent.indexOf("Firefox")).split("/")[1]
var FFextraHeight=parseFloat(getFFVersion)>=0.1? 16 : 0 //extra height in px to add to iframe in FireFox 1.0+ browsers
function resizeCaller() {
var dyniframe=new Array()
for (i=0; i<iframeids.length; i++){
if (document.getElementById)
resizeIframe(iframeids[i])
//reveal iframe for lower end browsers? (see var above):
if ((document.all || document.getElementById) && iframehide=="no"){
var tempobj=document.all? document.all[iframeids[i]] : document.getElementById(iframeids[i])
tempobj.style.display="block"
}
}
}
function resizeIframe(frameid){
var currentfr=document.getElementById(frameid)
if (currentfr && !window.opera){
currentfr.style.display="block"
if (currentfr.contentDocument && currentfr.contentDocument.body.offsetHeight) //ns6 syntax
currentfr.height = currentfr.contentDocument.body.offsetHeight+FFextraHeight;
else if (currentfr.Document && currentfr.Document.body.scrollHeight) //ie5+ syntax
currentfr.height = currentfr.Document.body.scrollHeight;
if (currentfr.addEventListener)
currentfr.addEventListener("load", readjustIframe, false)
else if (currentfr.attachEvent){
currentfr.detachEvent("onload", readjustIframe) // Bug fix line
currentfr.attachEvent("onload", readjustIframe)
}
}
}
function readjustIframe(loadevt) {
var crossevt=(window.event)? event : loadevt
var iframeroot=(crossevt.currentTarget)? crossevt.currentTarget : crossevt.srcElement
if (iframeroot)
resizeIframe(iframeroot.id);
}
function loadintoIframe(iframeid, url){
if (document.getElementById)
document.getElementById(iframeid).src=url
}
if (window.addEventListener)
window.addEventListener("load", resizeCaller, false)
else if (window.attachEvent)
window.attachEvent("onload", resizeCaller)
else
window.onload=resizeCaller
</script>
MODUL INPUT:
Code: Alles auswählen
$moddir = "iframedata/";
// VALUES
$sky_selectedfile = "CMS_VALUE[4000]";
$sky_iframe_width = "CMS_VALUE[4001]";
$sky_iframe_height = "CMS_VALUE[4002]";
$sky_iframe_border = "CMS_VALUE[4003]";
$sky_iframe_style = "CMS_VALUE[4004]"; // not used till yet
$sky_iframe_class = "CMS_VALUE[4005]"; // not used till yet
$sky_iframe_httpinput = "CMS_VALUE[4006]";
// VARIABLES
$sky_selectedfile2 = "CMS_VAR[4000]";
$sky_iframe_width2 = "CMS_VAR[4001]";
$sky_iframe_height2 = "CMS_VAR[4002]";
$sky_iframe_border2 = "CMS_VAR[4003]";
$sky_iframe_style2 = "CMS_VAR[4004]"; // not used till yet
$sky_iframe_class2 = "CMS_VAR[4005]"; // not used till yet
$sky_iframe_httpinput2 = "CMS_VAR[4006]";
// starting Modul Options Table
echo "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\">";
// ################################################################################################
// START FileChoose
// ################################################################################################
/* based on contenido internal upl function */
function sky_listdir_recursive ($currentdir, $startdir=NULL, $files=array(), $depth=-1, $pathstring="")
{
$depth++;
$unsorted_files = array();
if (chdir ($currentdir) == false)
{
return;
}
// remember where we started from
if (!$startdir) {
$startdir = $currentdir;
}
$d = opendir (".");
//list the files in the dir
while ($file = readdir ($d)) {
if ($file != ".." && $file != ".") {
$unsorted_files[] = $file;
}
}
if (is_array($unsorted_files)) sort($unsorted_files);
$sorted_files = $unsorted_files;
if(is_array($sorted_files)) {
foreach ($sorted_files as $file) {
if ($file != ".." && $file != ".") {
if ((filetype(getcwd()."/".$file) == "dir") &&
(opendir(getcwd()."/".$file) !== false)) {
$a_file['name'] = $file;
$a_file['depth'] = $depth;
$a_file['pathstring'] = $pathstring.$file.'/';;
$files[] = $a_file;
// If $file is a directory take a look inside
$files = sky_listdir_recursive (getcwd().'/'.$file, getcwd(), $files, $depth, $a_file['pathstring']);
} else {
// If $ file is not a directory then do nothing
$a_file['name'] = $file;
$a_file['depth'] = $depth;
$a_file['pathstring'] = $pathstring;
$files[] = $a_file;
}
}
}
}
closedir ($d);
chdir ($startdir);
return $files;
}
echo " <tr valign=\"top\">
<td class=\"text_medium\">Datei auswählen:</td>
<td class=\"text_medium\">
<select class=\"text_medium\" name=\"".$sky_selectedfile2."\">";
if ( $sky_selectedfile = "--KEIN--" )
{
echo " <option value=\"--KEIN--\" selected=\"selected\">-- KEIN --</option>";
}
else
{
echo " <option value=\"--KEIN--\">-- KEIN --</option>";
}
$sql = 'SELECT frontendpath FROM ' . $cfg["tab"]["clients"].' WHERE idclient = "'.$client.'"';
$db->query( $sql );
$db->next_record();
$l_upldir = $db->f("frontendpath");
function blub ( $vid , $vtxt)
{
echo '<option value="'.$vid.'">'.$vtxt.'</option>';
}
$sky_uploaddir = $cfgClient[$client]["upl"]["path"] . $moddir;
$sky_files = sky_listdir_recursive ( $sky_uploaddir , getcwd() );
if ( is_array($sky_files) )
{
// Array ( [0] => Array ( [name] => cms [depth] => 0 [pathstring] => cms/ )
while (list($lkey, $lvalue) = each ($sky_files))
{
if ( file_exists($sky_uploaddir.$lvalue['pathstring'].$lvalue['name']))
{
if ( $sky_selectedfile == $lvalue['pathstring'].$lvalue['name'] )
{
echo '<option value="'.$lvalue['pathstring'].$lvalue['name'].'" selected="selected">'.$lvalue['pathstring'].$lvalue['name'].'</option>';
}
else
{
echo '<option value="'.$lvalue['pathstring'].$lvalue['name'].'">'.$lvalue['pathstring'].$lvalue['name'].'</option>';
}
}
}
}
echo " </select>
</td>
</tr>";
// ################################################################################################
// End File Choose
// ################################################################################################
// ################################################################################################
// START HTTPInput
// ################################################################################################
echo " <tr valign=\"top\">";
echo " <td class=\"text_medium\">HTTP Link:</td>";
echo " <td class=\"text_medium\">";
echo " <input type=\"text\" class=\"text_medium\" name=\"".$sky_iframe_httpinput2."\" value=\"".$sky_iframe_httpinput."\"> ";
echo " <br>";
echo " Hinweis: HTTP-Link wird nur berücksichtigt, wenn als Dokument <b>-- KEIN --</b> ausgewählt wurde !";
echo " </td>";
echo " </tr>";
// ################################################################################################
// END HTTPInput
// ################################################################################################
// ################################################################################################
// START IFRAME-WIDTH
// ################################################################################################
echo " <tr valign=\"top\">";
echo " <td class=\"text_medium\">IFRAME-Width:</td>";
echo " <td class=\"text_medium\">";
echo " <input type=\"text\" class=\"text_medium\" name=\"".$sky_iframe_width2."\" value=\"".$sky_iframe_width."\"> ";
echo " </td>";
echo " </tr>";
// ################################################################################################
// END IFRAME-WIDTH
// ################################################################################################
// ################################################################################################
// START IFRAME-HEIGHT
// ################################################################################################
// Auto
// ################################################################################################
// END IFRAME-HEIGHT
// ################################################################################################
// ################################################################################################
// START IFRAME-BORDER
// ################################################################################################
echo " <tr valign=\"top\">";
echo " <td class=\"text_medium\">IFRAME-Border:</td>";
echo " <td class=\"text_medium\">";
echo " <input type=\"text\" class=\"text_medium\" name=\"".$sky_iframe_border2."\" value=\"".$sky_iframe_border."\"> ";
echo " </td>";
echo " </tr>";
// ################################################################################################
// END IFRAME-BORDER
// ################################################################################################
// closing Module Options Table
echo "</table>";
Code: Alles auswählen
<?php
// Lese ausgewählte Datei aus.
$moddir = "upload/iframedata/";
$sky_selected_file = "CMS_VALUE[4000]";
$sky_iframe_width = "CMS_VALUE[4001]";
$sky_iframe_heiht = "CMS_VALUE[4002]";
$sky_iframe_border = "CMS_VALUE[4003]";
$sky_iframe_style = "CMS_VALUE[4004]"; // not used till yet
$sky_iframe_class = "CMS_VALUE[4005]"; // not used till yet
$sky_iframe_httpinput = "CMS_VALUE[4006]";
// Arbeite Einstellungsvariabeln ab
// ###################################################################################
// START - IFRAME-WIDTH
if ( strlen($sky_iframe_width) > 0 )
{
$ls_iframe_width = $sky_iframe_width;
}
else
{
$ls_iframe_width = "100%";
}
// END - IFRAME-WIDTH
// ###################################################################################
// ###################################################################################
// START - IFRAME-HEIGHT
if ( strlen($sky_iframe_height) > 0 )
{
$ls_iframe_height = $sky_iframe_height;
}
else
{
$ls_iframe_height = "100%";
}
// END - IFRAME-HEIGHT
// ###################################################################################
// ###################################################################################
// START - IFRAME-BORDER
if ( strlen($sky_iframe_border) > 0 )
{
$ls_iframe_border = $sky_iframe_border;
}
else
{
$ls_iframe_border = "1";
}
// END - IFRAME-BORDER
// ###################################################################################
// check for NO FILE Selected
if ( $sky_selected_file != "--KEIN--" )
{
// using selected file
// überprüfe ob ausgewählte Datei noch existiert
if ( file_exists( $moddir.$sky_selected_file ) )
{
// erzeuge IFrame Ausgabecode
echo '<iframe src="'.$moddir.$sky_selected_file.'" width="'.$ls_iframe_width.'" height="'.$ls_iframe_height.'" frameborder="'.$ls_iframe_border.'">';
echo '<p>Ihr Browser unterstützt keine IFrames. Bitte aktualisieren Sie ihren Browser.</p>';
echo '</iframe>';
}
else
{
// using HTTP Input
echo '<iframe src="'.$sky_iframe_httpinput.'" width="'.$ls_iframe_width.'" height="'.$ls_iframe_height.'" frameborder="'.$ls_iframe_border.'">';
echo '<p>Ihr Browser unterstützt keine IFrames. Bitte aktualisieren Sie ihren Browser.</p>';
echo '</iframe>';
}
}
else
{
// using HTTP Input
echo '<iframe id="myframe" src="'.$sky_iframe_httpinput.'" scrolling="no" marginwidth="0" marginheight="0" vspace="5" hspace="0" width="100%" height="'.$ls_iframe_height.'" frameborder="'.$ls_iframe_border.'">';
echo '<p>Ihr Browser unterstützt keine IFrames. Bitte aktualisieren Sie ihren Browser.</p>';
echo '</iframe>';
}
?>
bitte darauf achten dass die iframe id="iframe" im layout und modul übereinstimmen.
würde mich über ein feedback freuen
viel spaß damit