Avatar billede krogstrup Nybegynder
07. august 2003 - 11:11 Der er 4 kommentarer og
1 løsning

FrameBuster - åben side i korrekt frameset

Den klassiske problemstilling:

Jeg har et website opbygget i frames (ja, jeg ved det godt....) Og en masse af siderne på dette site er indekseret på google. Dvs. at når man finder links til disse sider på google, ryger man direkte ind på siden, uden at siden åbnes i korrekt frameset med tilhørende menu i venstre side !!!!

Ikke så smart !

Jeg forestiller mig at man kan gøre noget ligneden følgende:

1) I framesettet sættes en javascript variabel, der bekræfter at framesettet ER indlæst.
2) Når content sider åbnes tjekkes der for om denne variabel er sat. Hvis ikke, betyder det at siden ikke er åbnet korrekt i mit frameset. Herefter skal javascriptet så redirecte til mit frameset og medsende url´en der skal åbnes i content feltet.


Er ovenstående en mulig løsning, og hvis ja; kan nogen vise hvordan det rent kodemæssigt kan lade sig gøre ?

Hvis nogen har andre løsningsforslag hører jeg også meget gerne disse !!!!
Avatar billede findovia Nybegynder
07. august 2003 - 11:39 #1
Der findes en udemærket vejledning på:
http://www.usc.edu/uscweb/authoring/frameload.html
Avatar billede krogstrup Nybegynder
07. august 2003 - 11:52 #2
Det virker jo perfekt - tak for link :-)
Avatar billede roenving Novice
07. august 2003 - 14:11 #3
Du kan også se min metode her:
http://roenving.users.whitehat.dk/WD3Input.html

-- ikke så meget forskellig i substansen ...
Avatar billede krogstrup Nybegynder
08. august 2003 - 23:08 #4
roenving >>>

Måske du kan hjælpe mig lidt videre. Så vidt jeg har forstået virker teknikken på den måde at man i dokumentet med FRAMESET tjekker om der er sendt nogen search-string med til dokumentet. Hvis dette er tilfældet indsættes denne som src for den relevante FRAME.

Men hvad nu hvis man i forvejen sender andre paramentre til FRAMESET dokumentet. Jeg har f.eks. en default.asp side som indeholder mit FRAMESET, men som også modtager andre parametre i search-stringen. Dvs at skriver jeg f.eks. default.asp?toppage=products så tror javascriptet at denne search-string skal indsættes som src i min content frame!

Hvordan kommer jeg uden om denne problemstilling - jeg er nødt til at kunne sende parametre til min default.asp som IKKE må påvirke framebuster javascriptet.

???
Avatar billede roenving Novice
09. august 2003 - 00:31 #5
Du fuldstændig ret i, at framebuster-scriptet både på linket og i mit eksempel 'bare' kigger efter om der er parametre i location.search !o]

Så skal vi selvfølgelig gøre scriptet mere kompliceret, men ikke ret meget !-)

De to scripts jeg benytter mig af:

if(top.location==window.location){top.location.replace(top.location.href.substring(0,top.location.href.lastIndexOf("/"))+"/index.html?"+escape(location.pathname))}


function loadSource(){
if (location.search!=""){
src=unescape(location.search.substring(1));
top.frames['mainFrame'].location.href=src;
}}

-- skal så ændres til f.eks.:

if(top.location==window.location){top.location.replace(top.location.href.substring(0,top.location.href.lastIndexOf("/"))+"/index.html?frmsrc="+escape(location.pathname))}

function loadSource(){
if (location.search.indexOf('frmsrc=')>-1){
src=unescape(location.search.substring(8));
top.frames['mainFrame'].location.href=src;
}}

hth
jes
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester