webForumDet fria alternativet

Knäcka frames

8 svar · 378 visningar · startad av joakimweb

joakimwebMedlem sedan feb. 2002141 inlägg
#1

Hej alla!

Jag skulle vilja ha ett script som knäcker frames. Men det skall vara så att om framen heter start så skall den inte knäckas.

Är det någon som har ett sådant script?
Är väldigt desperat...

/Jocke

JojoxxMedlem sedan juni 20004 308 inlägg
#2

Undrar varför denna tråd har 5 i betyg... Vad gör den "Mycket bra...?" ;) Ett tips är att ge betyg efter det att du fått svar som ett tecken på om du är nöjd med svaret eller inte. Använd inte betyg bara för försöka få fler att läsa tråden. Den bli läst ändå.

Här är ett exempel i alla fall.

<script language="JavaScript" type="text/javascript">
frameseturl="url_till_tillåten_sida.html";

frametimer=setTimeout("top.location.href=frameseturl",500);
if(top.location.href==frameseturl){ clearTimeout(frametimer); }
</script>

I variabeln frameseturl skriver du in den URL som skall vara tillåten att ligga "överst" i webbläsar-fönstret. Använder du inte frames är det samma som sidans url. Använder du frames är det URL'en till frameset-sidan som du använder (använd klipp och klistra från adress-raden så att du inte stavar fel). Vad framen har för namn är ovesäntligt.

joakimwebMedlem sedan feb. 2002141 inlägg
#3

Det blev nog inte riktigt helt rätt....

Nu gör den så att om inte framen är den där så redirectas man till den sidan.

Jag vill ha så att alla frames runt sidan tas bort, så att enbart min sida visas i hela fönstret. Men en viss sida skall kunna vara så att ramarna får vara kvar. Går det tro?

JojoxxMedlem sedan juni 20004 308 inlägg
#4

I variabeln frameseturl skriver du in url'en till den sida som skall få ligga överst, alltså den som syns i adress-raden i webbläsaren. Det kan vara en frameset-sida, eller sidan själv ifall du inte vill att sidan skall kunna laddas i någon frame ö.h.t.

Vill du att sidan skall tillåtas att laddas i "din" frameset eller laddas enskilt kan det se ut så här;

<script language="JavaScript" type="text/javascript">
frameseturl="url_till_tillåten_sida.html";

frametimer=setTimeout("top.location.href=frameseturl",500);
if(top.location.href==frameseturl||top.location.href==location.href){ clearTimeout(frametimer); }
</script>
joakimwebMedlem sedan feb. 2002141 inlägg
#5

Nej... Det är så att min hemsida, JoakimWeb har inga frames. För att inte andra ska länka fel och sånt så har jag ett script som knäcker alla frames.

Men jag har en sida som måste få ha sina frames runt JoakimWeb.

Så det scriptet jag önskar är ett script som tar bort alla andras frames om inte sidan heter t.ex. http://www.test.com/test.asp

Denna koden används nu:
<script language="JavaScript">
<!--
if (parent != self)
top.location.href = location.href;
//-->
</script>

Går det att lägga in någon IF-sats typ?

SirPeterMedlem sedan feb. 200115 571 inlägg
#6

Fungerar det inte med:

<script language="JavaScript">
<!--
if (parent.location.href==location.href) location.href="http://www.test.com";
// -->
</script>
joakimwebMedlem sedan feb. 2002141 inlägg
#7

Den knäcker ju inte ramarna, utan redirectar till en annan sida om det är fel...

mikkeXMedlem sedan aug. 2002477 inlägg
#8

Du får ge oss en länk, får jag tror inte vi förstår vad du är ute efter.

JojoxxMedlem sedan juni 20004 308 inlägg
#9

joakimweb:

Funktionen på det script du använder och de som visas i tråden är i princip den samma. När du säger "knäcker alla frames" är det samma sak, d.v.s. att är sidan som ligger överst i webbläsaren (den som visas i adress-fönstret) så skall en annan sida laddas, en som du väljer.

Skillnaden mellan scripten är att om du direkt jämför om parent.location.href eller top.location.href är lika med något annat och den sidan ligger på en annan domän så kan du få "access denied", du har alltså inte rätt att läsa den. I mitt exemel har jag vänt på det. Där sätts en timeout som byter sida till "den rätta" om det sedan visar sig att en giltig sida är laddad överst så avbryts timeout'en med clear timeout. Skulle det då vara så att en annan domän är laddad överst så kommer timeouten att se till att rätt sida laddas. Om vi skall förenkla det ytterligare lite kan vi göra så att om en ogiltig sida är laddad överst så laddas aktuell sida där. Detta är alltså vad du vill eftersom du inte använder frames. Har du sedan en frameset-sida någonstanns som du vill kunna ladda dina sidor i skriver du in den i variabeln frameseturl.

<script language="JavaScript" type="text/javascript">
frameseturl="url_till_tillåten_sida.html";

frametimer=setTimeout("top.location.href=location.href",500);
if(top.location.href==frameseturl||top.location.href==location.href){ clearTimeout(frametimer); }
</script>
129 ms totalt · 3 externa anrop · v20260731065814-full.0e50b1ef
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)