Get Blogged by JoKi

"The only frontiers are in your mind"
28 | 06 | 2017
Navigation
Syndication
Latest Tweets

Most Read Articles
Article Time Line
About me
Family guy, geek, entrepreneur, software craftsman: Visual FoxPro, C#, SQL Server, MySQL, Linux consultant, conference speaker

Certificates & Awards

Microsoft Certified Professional

Microsoft Specialist - Programming in HTML5 with JavaScript and CSS3 Specialist

Get in touch

Sharing is caring

Recent books


Sponsoring
If you like the information on these pages, your support is highly appreciated.
Thank you very much!
Affiliates

 

Spacer for layout formatting

Clash of the browsers

User Rating:★★★★★ / 1
PoorBest 
General 14 March 2005 - 
Es ist immer wieder ernüchternd, wenn man mit JavaScript das magere HTML-Frontend aufpeppen möchte. Nunja, heute ging's um Resizing von Frames... Wie Frames? - Ja, ich kann die Teile überhaupt nicht abhaben, aber manchmal geht's dann halt doch nicht anders. Und genau so einen Fall habe ich gerade (oder immer noch).

Okay, die optische Politur muss her, denn eine Verschmelzung zwischen Active FoxPro Pages und PHP soll zumindest auf den ersten Blick einigermaßen unsichtbar sein bzw. bleiben. Nein, nicht um AFP zu pushen, sondern ausschliesslich der Usability und Optik wegen. Zudem sind IFrames für solch einen Zweck einigermaßen zu gebrauchen.

Well, was gilt es zu beachten? - zunächst einmal, dass potentiell der gewünschte Content erscheint. Dann gestaltet es sich weiterhin als interessant, dass der IFrame gefälligst ohne Scrollbar angezeigt wird... Und hier beginnen die Probleme.

Die Breite ist noch einigermaßen easy zu kontrollieren, aber die Höhe des IFrame; da wird's schon ein klein wenig schwieriger. Oder zumindest kommt es mir so vor. Nun denn. Basierend auf einer interessanten Vorlage habe ich mich wieder in die Tiefen von JavaScript und Browser DOMs getraut, und wie zu erwarten auch gleich mal wieder einen auf den Deckel bekommen.

Hier mal den aktuellen Code der Implementierung, damit klarer wird, wovon ich überhaupt spreche:

[code]
function resizeFrame(objectID) {
var e;
var domFrame = findDOM(objectID);
var domFrameStyle = findDOM(objectID,1);
var domFrameDoc = (window.navigator.appName.toLowerCase().indexOf("netscape") > -1) ? domFrame.contentWindow.document : domFrame.document
var fheight = 0;

try {
// Get absolute height of document inside the frame.
fheight = domFrameDoc.body.scrollHeight;
} catch(e) {
window.status = "Exception: " + e.description;
fheight = 1000;
}
domFrame.height = fheight;
domFrameStyle.display = 'block';
}
[/code]

Spannenderweise muss mit einem Try-Catch gearbeitet werden, da FireFox den Zugriff mit einer Exception quittiert. Und darin liegt auch die Sache ein wenig begraben. Ich hab's ebenfalls mittels Statusabfrage von document.readyState probiert, aber auch dann sieht's nicht besser aus.

More to come...


Bis denne, JoKi
blog comments powered by Disqus
 
Spacer for layout formatting