Newsgroup: it.comp.lang.javascript
Titolo: script per frames ><((((°>

Sul sito 
http://www.pawluk.com/public
 ho trovato questo javascript,
chiamato frame stuffer, che evita che un pagina venga aperta fuori dal
suo frameset. Se la pagina viene aperta fuori dal frameset, lo script
va a caricare il frameset con la pagina che si era tentato di aprire
nel frame specificato.
Il codice si compone di 2 parti, una va inserito sul frameset, l'altra
su ogni pagina che si vuole proteggere. 
Nel tentativo di adattarlo alle mie esigenze xò ho riscontrato alcuni
problemi:
1	devi inserire in ogni pagina il codice ^client^ e nn puoi
	linkarlo ad un js esterno.
2	carica solo 1 pagina in un frame
Cosa vorrei ottenere:
1	definite in ogni pagina le variabili, linkare tutte le pagine
	a uno script esterno base
2	caricare 2 pagine in due frames differenti
Ecco i listati
codice da inserire su ogni pagina (tratto dal file products.html)
// frameJammer_hp v3.2.2 framestuffer
if (
window.name
!='text' && 
window.name
!='booker_' 
&& !((self.innerHeight == 0) && (self.innerWidth == 0)))
top.location.replace('index.html?products.html~text');
Note:
index.html	è il nome del file che contiene i vari frameset
products.html	è il nome protetto, da far ricaricare nel frame
specificato
text 		è il frame nel quale andrà ad aprirsi products.html
Avevo pensato che si poteva definire in ogni pagina delle variabili
tipo
var fileframeset = 'index.html';
var pagina = 'products.html';
var frame = 'text';
il mio problema è che, essendo io digiuno di sintassi Javascript, nn
so che modificare lo script sopra per quanto riguarda gli apici e via
discorrendo.
codice da inserire nel frameset (dal file index.html)
<script language="javascript" type="text/javascript">
// frameJammer_hp v3.2.2 framestuffer
if (self != top)     // frame buster, may be removed
	top.location.replace(self.location);
var theDefault = 'home.html'; 	//pagina settata come default
var theFrame = 'text';		//frame nel quale si aprirà la pagina
di default
var thePage = theDefault;
var framedPage = location.search;
if (framedPage.length > 1 && framedPage.indexOf("://") == -1){
	framedPage = framedPage.substring(1);
	var theSplit = framedPage.lastIndexOf('~');
	if (theSplit != -1){
		thePage = framedPage.substring(0,theSplit);
		theFrame = framedPage.substring(theSplit+1);
	}else
		thePage = framedPage;
	// insert anchor code here if required (see Help)
	}
function frameStuffer(){
	eval('top.'+theFrame+'.location.replace("'+ thePage +'");');
	if (theFrame != 'text'){
		top.text.location.replace(theDefault);
		theFrame = 'text';
		}
	}
// frameJammer_hp End
</script>
</head>
<frameset cols="179,100%" onload="frameStuffer()">
  <frame src="pulsanti.eng.html" name="pulsanti" />
  <frameset rows="130,100%,25" >
    <frame src="titoli/titolo.home.html" name="titolo" />
    <frame src="home.html" name="text" />
    <frame src="note.html" name="note" />
  </frameset>
</frameset>  
  ... etc
 
Sul sito dello script c'è un minimo di documentazione se vi può
servire
vi ringrazio anticipatamente.
mi spiace molto nn poter ricambiare o aiutare qlc ma sn proprio
digiuno di dhtml in generale.
il + che posso fare è postare il codice che riesco a far funziare,
come ho fatto per il prob della stampa centrata del layer nascosto
tramite CSS, qlc giorno fa
MPG.188be2d2b...@powernews.libero.it
.
iauz
deadhead
_____________><(((°>_.:!:._<°)))><_____________
Non bisogna giudicare gli uomini dalle loro amicizie: Giuda frequentava persone irreprensibili! (E. Hemingway)
Se vuoi scrivermi, togli "okkupato"




Cosa vorrei ottenere:

Ecco i listati










Vorrei modificare questo script in modo tale che definite altre 2
variabili frame di destinazione pagina da caricare mi carichi 2 pagine
in due script.
per quanto riguarda il caricamento di 2 pagine in una botta sola
io già utilizzo il seguente script
// carica 2 pagine con un click in 2 frames diversi(titolo e text)
function multiLoad(doc1,doc2) {
  parent.titolo.location.href=doc1;
  parent.text.location.href=doc2; 
 
richiamato da 
multiLoad('titoli/titolo.products.html','products.html')
Volendo so che potrei evitare di utilizzare questo script, inserendo
nelle pagine aperte nel frame 'text' un onload che richiama nel frame
'titolo' le rispettive pagine. Attuando questa soluzione nn dovrei
andare a modificare il codice dello script lato frameset. Preferirei
xò evitarlo perchè ho solo 2 pagine con links e così facendo mi
toccherebbe andarne a modificare ben di più.
Suggeritemi voi: meglio pagine concatenate con onload e nn toccare lo
script o modificare lo script in modo tale che mi carichi anche una
seconda pagina in un altro frame?


non ho letto lo script, ma se in ogni pagina metti
onload='if(top.location.href==self.location.href)
document.location='tuamainpageconframe.htm';
Non č esattamente quello che chiedi (dovresti passare un parametro per
indicare quale pagina aprire), perň dovrebbe essere piů che sufficiente...

umhh forse ho messo troppa carne al fuoco. La notte mi ha portato
consiglio ed ho deciso di fare la cosa + semplice.
Avrei dunque bisogno di sapere come devo modificare il seguente script
if (
window.name
!='text' && 
window.name
!='booker_' 
&& !((self.innerHeight == 0) && (self.innerWidth == 0)))
top.location.replace('index.html?products.html~text');
per far si che anzichč riferimenti statici alle pagine ^index.html^,
^products.html^ e al frame ^text^ ci siano inseriti i nomi di tre
variabili, che dichiarerň in ogni singola pagina, mentre lo script
diventato universale, lo likerň su un file js esterno.
Visto che so ignorante in fatto di sintassi JavaScript, come devo
fare?
le variabili le dichiarerei cosě:
var fileframeset = 'index.html';
var pagina = 'products.html';
var frame = 'text';
č corretto?
come modifico sto *azzo di script per farlo funziare con le variabili?
Grazie a tutti


 top.location.replace('index.html?products.html~text');
diventerebbe (mantenendo le tue parentesi, non mi piace molto quel && ! , e
presupponendo di aver capito come sostituire quel link nella location)
if (
window.name
!=frame && 
window.name
!='booker_' && !((self.innerHeight ==
0) && (self.innerWidth == 0)))
top.location.replace(fileframeset+'?'+pagina+'~'+frame);

Potessi ti offrirei da bere... 8-))
Funzia, maledizione funzia!!! Evvaiiii
Sei davvero molto gentile e paziente
tnx a lot!!


top.location.replace(fileframeset+'?'+pagina+'~'+frame);
uh? questo "~" non l'avevo mai visto! a che serve?
--
Ciao!
Davide
[DAOC PG]Armorgod Troll Sciamano - Midgard Vortigern[/DAOC PG]

> uh? questo "~" non l'avevo mai visto! a che serve?
A nulla di predefinito...probabilmente lo userà in qualche modo la pagina
chiamata