[GastForen Programmierung/Entwicklung JavaScript Kopfzerbrechen wegen Frames...

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Kopfzerbrechen wegen Frames...

Claudia
Beiträge gesamt:

24. Sep 2002, 23:06
Beitrag # 1 von 2
Bewertung:
(676 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Leute
Mir raucht der Kopf, weil ich folgendes versuche: Ich habe eine HP mit 3 Frames: Top, Navigation und Inhalt. Nun zeigt die Suchmaschine natürlich "nur" das Frame an, in welchem die Suche erfolgreich war. Ich weiss, dass es Scripts gibt, die eine Seite in einen Frame "zwingen" können, ebenso, wie es Scripte gibt, welche nicht erlauben, meine Seite in einem fremden Frame darzustellen. Ich habe diesbezüglich verschiedene Varianten, doch nichts, das funktioniert. Bei welchen Seiten muss ich welchen Code hineinschreiben, damit das Frame mit dem Inhalt nicht immer nur die Startseite zeigt? Gibt es eine einfache Lösung? Bin für jeden Tipp dankbar!

Claudia
X

Kopfzerbrechen wegen Frames...

Anonym
Beiträge gesamt: 22827

20. Dez 2002, 15:56
Beitrag # 2 von 2
Beitrag ID: #19964
Bewertung:
(676 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Claudia

hier eine möglichkeit:
das ganze funktioniert wie folgt.
- eine fürs inhalts-frame gedachte seite prüft ob sie im richtigen frameset dargestellt wird.
- wenn nicht, ruft sie das richtige frameset auf und übergibt die adresse zu sich selbst in der url als variable.
- im frameset wird geprüft ob die besagte variable vorhanden ist/übergeben wurde, und wenn ja wird das inhalts-frame entsprechen neu geladen.



<!-- hier der code fuer eine inhaltsseite -->

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/...tml4/strict.dtd">

<html><head><title>Inhalts Seite</title>
<script language="JavaScript" type="text/javascript">
<!--
//var frameSetUrl = 'http://www.meinehomepage.ch/frameset.html';
var frameSetUrl = 'frameset.html';
var selfLocation = new String(self.document.location);
var topLocation = new String(top.document.location);
if (topLocation.indexOf(frameSetUrl) == -1) {
//alert('wrong frameset: '+ topLocation);
top.document.location = frameSetUrl +'?page='+ selfLocation;
}
//-->
</script>
</head><body>ich bin die inhaltsseite</body></html>





<!-- hier der code fuer das frameset -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/...l4/frameset.dtd">

<html><head><title>Frameset</title>
<script language="JavaScript" type="text/javascript">
<!--
//--------------------------------------------------
// initialization

// wenn geladen rufe funktion initialize auf
onload = initialize;

function initialize() {
// extrahiere die in der url übergebene variable 'page'
var query = location.search.substring(1);
var args = getArgs(query);
var contentLocation = new String(window.frames['contentFrame'].document.location);

// wenn variable 'page' vorhanden ist
if (typeof args.page != 'undefined') {
// und die url auf welche 'page' zeigt noch nicht geladen ist
if (contentLocation != args.page) {
// dann lade die seite ins inhalts-frame
// (ich habe hier location.replace() verwendet damits keinen eintrag in der Hystory gibt)
window.frames['contentFrame'].document.location.replace(args.page);
}
}
}
//--------------------------------------------------



//--------------------------------------------------
// function getArgs
//--------------------------------------------------
// extracts variables out of location string
// and returns them as a objects properties
//--------------------------------------------------
function getArgs(str) {
var args = new Object();
var pairs = str.split(",");
for (var i=0; i<pairs.length; i++) {
var pos = pairs.indexOf("=");
if (pos == -1) continue;
var argname = pairs.substring(0,pos);
var value = pairs.substring(pos+1);
args[argname] = unescape(value);
}
return args;
}
//--------------------------------------------------
//-->
</script>
</head>

<frameset rows="30%,70%">
<frame src="about:blank" name="topFrame" />
<frameset cols="20%,80%">
<frame src="about:blank" name="navFrame" />
<frame src="seite.html" name="contentFrame" />
</frameset>
</frameset>
<noframes><body>Your browser does not support FRAMES.</body></noframes></html>




alternativ könnte man das frameset mit document.write dynamisch erzeugen was einen overhead bei obigem beispiel elimieren würde.
aber so ist es suchmaschienen freundlicher.

hope this helps

gruss
Steven


als Antwort auf: [#12109]

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
21.06.2022

Online
Dienstag, 21. Juni 2022, 10.00 - 10.30 Uhr

Webinar

Viele Druckereien – kleine und große – suchen heute nach Wegen, ihre Effizienz und Produktivität zu steigern. Dabei erkennen sie oft, dass sie sich dringend um die Optimierung, Standardisierung und Automatisierung ihrer Workflows und Prozesse kümmern sollten. In unserer kostenlosen, jeweils ca. 30 minütigen Webinar-Reihe erfahren Sie, wie Sie die Effizienz- und Produktivitätspotenziale Ihrer Druckerei erschließen können – und wie einfach und kostengünstig das sein kann.

kostenlose 3-teilige Webinar-Reihe, 21., 23. und 26. Juni 2022, jeweils 10:00 - 10:30

Ja

Organisator: Impressed GmbH

Kontaktinformation: Silvia Noack, E-Mailsnoack AT impressed DOT de

https://impressed-workflow-server.de/impressed-webinar-reihe-the-big-picture/

Impressed Webinar-Reihe THE BIG PICTURE
Veranstaltungen
02.02.2023

Prozesse optimieren und effizient gestalten

Zürich
Donnerstag, 02. Feb. 2023, 08.00 - 10.00 Uhr

Digitalisierung, Webauftritt

Digitalisierung mitgestalten - Worauf kommt es an? Wie wichtig ist die Webseite? Webseite mit Word Press? Interne Prozesse optimieren

Ja

Organisator: B. Isik - SNF Academy

Kontaktinformation: Birol Isik, E-Mailinfo AT bkcc DOT ch

https://digitalisierung-heute.ch/digitalisierung-informationstag-schweiz/