11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Je ne comprends pas grand chose aux scripts. Et je dois travailler avec celui-ci. Est ce que quelqu'un pourrait m'aider à repérer la fonction qui ouvre de nouvelles pages et la modifier pour que TOUTLETEMPS le script n'ouvre pas de nouvelles pages.
Apparement le script a été généré par Adobe GoLive...

Merci d'avance!
<csscriptdict>
  <script><!--
CSStopExecution = false;
CSInit = new Array;
function CSScriptInit() {
idxArray = new Array;
for(var i=0;i<CSInit.length;i++)
	idxArray[i] = i;
CSAction2(CSInit, idxArray);
}
CSAg = window.navigator.userAgent; CSBVers = parseInt(CSAg.charAt(CSAg.indexOf("/")+1),10);
function IsIE() { return CSAg.indexOf("MSIE") > 0;}
function CSIEStyl(s) { return document.all.tags("div")[s].style; }
function CSNSStyl(s) { return CSFindElement(s,0); }
function CSFindElement(n,ly) { if (CSBVers < 4) return document[n];
	var curDoc = ly ? ly.document : document; var elem = curDoc[n];
	if (!elem) { for (var i=0;i<curDoc.layers.length;i++) {
		elem = CSFindElement(n,curDoc.layers[i]); if (elem) return elem; }}
	return elem;
}
function CSButtonReturn () {
	var bAgent = window.navigator.userAgent; 
	var bAppName = window.navigator.appName;
	if ((bAppName.indexOf("Explorer") >= 0) && (bAgent.indexOf("Mozilla/3") >= 0) && (bAgent.indexOf("Mac") >= 0))
		return false; // follow link
	else return true; // follow link
}
CSIm = new Object();
function CSIShow(n,i) {
	if (document.images) {
		if (CSIm[n]) {
			var img = (!IsIE()) ? CSFindElement(n,0) : document[n];
			if (img && typeof(CSIm[n][i].src) != "undefined") {img.src = CSIm[n][i].src;}
			if(i != 0)
				self.status = CSIm[n][3];
			else
				self.status = " ";
			return true;
		}
	}
	return false;
}
function CSILoad(action) {
	im = action[1];
	if (document.images) {
		CSIm[im] = new Object();
		for (var i=2;i<5;i++) {
			if (action[i] != '') { CSIm[im][i-2] = new Image(); CSIm[im][i-2].src = action[i]; }
			else CSIm[im][i-2] = 0;
		}
		CSIm[im][3] = action[5];
	}
}
CSStopExecution = false;

function CSAction(array) { 
	return CSAction2(CSAct, array);
}
function CSAction2(fct, array) { 
	var result;
	for (var i=0;i<array.length;i++) {
		if(CSStopExecution) return false; 
		var actArray = fct[array[i]];
		var tempArray = new Array;
		for(var j=1;j<actArray.length;j++) {
			if((actArray[j] != null) && (typeof(actArray[j]) == "object") && (actArray[j].length == 2)) {
				if(actArray[j][0] == "VAR") {
					tempArray[j] = CSStateArray[actArray[j][1]];
				}
				else {
					if(actArray[j][0] == "ACT") {
						tempArray[j] = CSAction(new Array(new String(actArray[j][1])));
					}
				else
					tempArray[j] = actArray[j];
				}
			}
			else
				tempArray[j] = actArray[j];
		}			
		result = actArray[0](tempArray);
	}
	return result;
}
CSAct = new Object;
function CSURLPopupShow(formName, popupName, target) {
	var form  = CSFindElement(formName);
	var popup = form.elements[popupName];
	window.open(popup.options[popup.selectedIndex].value, target);
	popup.selectedIndex = 0;
}

// --></script>
</csscriptdict>
[/i][/i][/i][/i][/i][/i][/i]
Modifié par alx75 (05 Sep 2007 - 12:25)
bonjour,

le code qui modifie l'ouverture dans une nouvelle page et celui ci je pensE.

function CSURLPopupShow(formName, popupName, target) {
	var form  = CSFindElement(formName);
	var popup = form.elements[popupName];
	window.open(popup.options[popup.selectedIndex].value, target);
	popup.selectedIndex = 0;
}


Donc tu voudrais le modifier pour qu'il ouvre dans la meme page ?
Oui s'il te plait!
Ya pas mal de bribe de code qui appelle les fonctions du scripts dans le HTML aussi... j'ai essayé de modifier ces dernieres mais rien n'y fait...
je suis pas sur de mon coup donc Smiley biggol

tu peux essayer avec cela, en remplacant :

window.open(popup.options[popup.selectedIndex].value, target);


par :

window.location.replace(popup.options[popup.selectedIndex].value);


Normal comme popup.options[popup.selectedIndex].value devrai etre ton lien cela devrai marcher mais je suis pas sur faudrai que tu fasse un alert pour verifier ce que ça envoi.
C'est vraiment cool de ta part, apparement ca a marcher.

Juste que je meurs pas complétement stupide tu peux m'expliquer comment ca fonctionne?
T'as remplacer 'open' par 'location' ... ok ... qui remplace la ligne précédente....
Tas supprimer 'target' en fin de ligne... ok

Pourquoi nulle part est préciser si on veut ouvrir ou localiser la target en Parent, Blank ou autre ?

Smiley biggol
D'après ce que j'ai compris ( que les meilleur en javascript que moi me reprenne bien sur Smiley langue )

la fonction open ouvre toujours une nouvelle page et le target peut etre des option passer en parametre comme ne pas mettre la barre d'addresse ou encore de scroll...

Tandis que le location fait seulement une redirection basiquer vers ta page voulu.