begin process at 2012 05 29 14:11:03
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

Javascript et ActiveX

 > 

Autre

 > 

javascript partiellement refusé pour une page d'une boutique (professionnelles) sur ebay


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

javascript partiellement refusé pour une page d'une boutique (professionnelles) sur ebay

lundi 15 février 2010 à 16:22:25 | javascript partiellement refusé pour une page d'une boutique (professionnelles) sur ebay

Log40

suite à un problème avec du javascript et dans le cadre d'une activité professionnel, j'ai choisi votre forum afin de vous demander conseil. Je compte beaucoup sur vous car la situation est assez pénible.

J'ai donc une activité professionnelle sur ebay, et afin d'embellir ma boutique, j'ai souhaité réaliser une page d'accueil un peu recherchée et attrayante et qui permette de présenter les produits plus originalement.

Après plus de 200 heures de travail (!!) et je crois, un résultat plutôt abouti, j'ai donc voulu ajouter la page comme il est possible de faire, mais malheur, les scripts ne sont pas autorisés. En réalité...pas totalement.


Pour faire simple, les scripts font références à un carrousel et un slide, utilisant jcarousellite et jquery-1.3.2.min que j'ai agrémenté d'un plugin permettant l'affichage d'informations au passage de la souris.

J'ai constaté qu'en premier lieu la publication de la page posait problème à partir du moment ou le fichier était appelé à l'extérieur de la page html. J'ai donc intégré les scripts directement.
Il y a une avancé mais le problème persiste toujours.
J'ai alors entrepris d'identifier ce qui pouvait causer le refus et en ce qui concerne le plugins permettant l'affichage d'informations, en supprimant dans le code "replace("px",""))+parseInt(l.css("padding-top").replace("px",""))-1;l" cela n'atteignait pas son fonctionnement et permettait le chargement de la page.

Le soucis est que je ne connais rien en javascript, et il me reste 2 scripts qui causent problème (le carousellite et jquery-1.3.2.min qui ce dernier est assez fourni). J'ai essayé sur le carrousel d'indentifier le problème mais le simple fait de supprimer "eval(function(p,a,c,k,e,r)" suffit à anéantir le plugin, pourtant rien que cette partie du code bloque la parution sur la page.

Seriez-vous identifier quelles seraient les parties du code qui causent problème à ebay? serez-vous me proposer un code qui permet le bon fonctionnement des plugins et l'acceptation sur ebay?

Quel solution auriez-vous à me proposer?

J'espère qu'en connaisseurs vous aurez des solutions.

Cordialement.
mardi 16 février 2010 à 22:03:23 | Re : javascript partiellement refusé pour une page d'une boutique (professionnelles) sur ebay

PetoleTeam

Membre Club
Bonjour,
le simple fait de supprimer "eval(function(p,a,c,k,e,r)"...
normal cela fait partie intégrante du code PACKER, code compressé, voir dean.edwards.name/packer/
;O)
mercredi 17 février 2010 à 15:33:57 | Re : javascript partiellement refusé pour une page d'une boutique (professionnelles) sur ebay

Log40

Bonjour,

je reviens vers vous car le problème a été identifié et partiellement résolu. Ceci dit, il reste des parties de code de jquery qui causent problème. Le dernier plugin ayant été remplacé par un code non compressé le problème est résolu pour celui-ci.

Concernant jquery, le problème vient de la fonction "replace." Sous le conseil d'un personne, j'ai alors remplacé le maximum de fonction replace par "parseInt(l.css("padding-top"))". Ce qui a réglé le problème pour une grande majorité; Ceci dit, il reste 8 fonctions replace dans le code (très chargé) que je n'arrive pas à remplacer. Aurez-vous une solution?

Voici les parties de code où se trouve les fonctions replace restantes :
(je vous communique de "gros paquets", sait-on jamais, la partie à remplacer est peut-être longue)

Code Javascript :
replace(/([A-Z])/g,"-$1").toLowerCase();var getComputedStyle=document.defaultView.getComputedStyle(elem,null);if(getComputedStyle&&!color(elem))ret=getComputedStyle.getPropertyValue(name);else{var swap=[],stack=[];for(var a=elem;a&&color(a);a=a.parentNode)stack.unshift(a);for(var i=0;i<stack.length;i++)if(color(stack)){swap[i]=stack[i].style.display;stack[i].style.display="block";

 

.....

 

replace(/(<(\w+)[^>]*?)\/>/g,function(all,front,tag){return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?all:front+"></"+tag+">";});var tags=jQuery.trim(elem).toLowerCase(),div=context.createElement("div");var wrap=!tags.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!tags.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||tags.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!tags.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!tags.indexOf("<td")||!tags.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!tags.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||jQuery.browser.msie&&[1,"div<div>","</div>"]||[0,"",""];div.innerHTML=wrap[1]+elem+wrap[2];while(wrap[0]--)div=div.lastChild;if(jQuery.browser.msie){var tbody=!tags.indexOf("<table")&&tags.indexOf("<tbody")<0?div.firstChild&&div.firstChild.childNodes:wrap[1]=="<table>"&&tags.indexOf("<tbody")<0?div.childNodes:[];for(var j=tbody.length-1;j>=0;--j)if(jQuery.nodeName(tbody[j],"tbody")&&!tbody[j].childNodes.length)tbody[j].parentNode.removeChild(tbody[j]);

 

.....

 

replace(/-([a-z])/ig,function(all,letter){return letter.toUpperCase();});if(value!=undefined)elem name =value;return elem name ;}},trim:function(text){return(text||"").

 

.....

 

replace(/^\s+|\s+$/g,"");},makeArray:function(array){var ret=[];if(array.constructor!=Array)for(var i=0,length=array.length;i<length;i++)ret.push(array[i]);else

ret=array.slice(0);return ret;},inArray:function(elem,array){for(var i=0,length=array.length;i<length;i++)if(array[i]==elem)return i;return-1;},merge:function(first,second){if(jQuery.browser.msie){for(var i=0;second[i];i++)if(second[i].nodeType!=8)first.push(second[i]);}else

for(var i=0;second[i];i++)first.push(second[i]);return first;},unique:function(array){var ret=[],done={};try{for(var i=0,length=array.length;i<length;i++){var id=jQuery.data(array[i]);if(!done id ){done id =true;ret.push(array[i]);}}}catch(e){ret=array;}return ret;},grep:function(elems,callback,inv){var ret=[];for(var i=0,length=elems.length;i<length;i++)if(!inv&&callback(elems[i],i)||inv&&!callback(elems[i],i))ret.push(elems[i]);

 

.....

 

replace(/^\s*,\s*/,"");cur=not?elems=f.r:jQuery.merge(cur,f.r);}return cur;},find:function(t,context){if(typeof t!="string")return[t];if(context&&context.nodeType!=1&&context.nodeType!=9)return[];context=context||document;var ret= context ,done=[],last,nodeName;while(t&&last!=t){var r=[];last=t;t=jQuery.trim(t);var foundToken=false;var re=quickChild;var m=re.exec(t);if(m){nodeName=m[1].toUpperCase();

 

.....

 

replace(/\\/g,"");var elem=ret[ret.length-1];if(m[1]=="#"&&elem&&elem.getElementById&&!jQuery.isXMLDoc(elem)){var oid=elem.getElementById(m[2]);if((jQuery.browser.msie||jQuery.browser.opera)&&oid&&typeof oid.id=="string"&&oid.id!=m[2])oid=jQuery('[@id="'+m[2]+'"]',elem)[0];ret=r=oid&&(!m[3]||jQuery.nodeName(oid,m[3]))? oid :[];}else{for(var i=0;ret[i];i++){var tag=m[1]=="#"&&m[3]?m[3]:m[1]!=""||m[0]==""?"*":m[2];if(tag=="*"&&ret[i].nodeName.toLowerCase()=="object")tag="param";

 

.....

 

replace(re2,"");}}if(t){var val=jQuery.filter(t,r);ret=r=val.r;t=jQuery.trim(val.t);}}if(t)ret=[];if(ret&&context==ret[0])ret.shift();done=jQuery.merge(done,ret);return done;},classFilter:function(r,m,not){m=" "+m+" ";var tmp=[];

 

.....

 

replace(/\\/g,"");break;}}if(!m)break;if(m[1]==":"&&m[2]=="not")r=isSimple.test(m[3])?jQuery.filter(m[3],r,true).r:jQuery(r).not(m[3]);else if(m[1]==".")r=jQuery.classFilter(r,m[2],not);else if(m[1]=="["){var tmp=[],type=m[3];for(var i=0,rl=r.length;i<rl;i++){var a=r[i],z=a[jQuery.props[m[2]]||m[2]];if(z==null||/href|src|selected/.test(m[2]))z=jQuery.attr(a,m[2])||'';if((type==""&&!!z||type=="="&&z==m[5]||type=="!="&&z!=m[5]||type=="^="&&z&&!z.indexOf(m[5])||type=="$="&&z.substr(z.length-m[5].length)==m[5]||(type=="*="||type=="~=")&&z.indexOf(m[5])>=0)^not)tmp.push(a);}r=tmp;}else if(m[1]==":"&&m[2]=="nth-child"){var merge={},tmp=[],test=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(m[3]=="even"&&"2n"||m[3]=="odd"&&"2n+1"||!/\D/.test(m[3])&&"0n+"+m[3]||m[3]),first=(test[1]+(test[2]||1))-0,last=test[3]-0;
Code Javascript :



Je précise que les codes passent sur ebay en supprimant les fonctions replace, c'est le seul problème qui demeure encore à régler.

Merci à vous,

Cordialement.
samedi 20 février 2010 à 10:05:12 | Re : javascript partiellement refusé pour une page d'une boutique (professionnelles) sur ebay

PetoleTeam

Membre Club
Bonjour,
le problème vient de la fonction "replace."
je ne suis pas un spécialiste des RegExp, mais certaines peuvent cependant être facilement remplacées
suppression des \ et autre re2
.replace(/\\/g, "")
à remplacer par
.split('\\').join('')
idem pour
.replace(re2,"")
à remplacer par
.split(re2).join('')
plus hasardeux car aucun contrôle => potentiel plantage, convertie une chaine STYLE en une chaine JAVASCRIPT, exemple background-color en backgroundColor
.replace(/-([a-z])/ig,function(all,letter){ return letter.toUpperCase();})
par
str = str.split('-');
str = str[0] +str[1].charAt(0).toUpperCase() +str[1].substr(1);

l'inverse convertie une chaine JAVASCRIPT en une chaine STYLE
.replace(/([A-Z])/g,"-$1").toLowerCase();
je te laisse la faire
et pour celle la
.replace(/(<(\w+)[^>]*?)\/>/g,function(all,front,tag)...etc...
il faut voir sur le forum Regex, ils auront surement une solution...
j'allais oublier
.replace(/^\s*,\s*/,"")
qui supprime les espaces en tête et en fin d'une chaine, il doit bien exister des exemples...

Je pense néanmoins quand mettant en commentaire un certains nombre cela devrait fonctionner quand même, car peut de chance de tout utiliser dans un bibliothèque de cette taille, à condition de le faire sur une source dépacktée et bien indentée...
Bonne continuation
;O)
samedi 20 février 2010 à 13:39:39 | Re : javascript partiellement refusé pour une page d'une boutique (professionnelles) sur ebay

Log40

Fantastique!!

Bonjour et merci!

J'ai remplacé toutes les 8 fonctions replace par textuellement : split('\\').join('') et cela fonctionne et n'atteint pas le plugin!!

Par contre, ça créé un trouble apparemment avec ce qui est défini dans le css. En effet, le container du carrousel est plus large et décalé et le contenu plus espacé, le slide est en bas de page et sur la page les liens se sont déplacés...
Avez-vous une explication et cela peut-il être corrigé?

Petit bémol mais je suis encouragé par tout ces problèmes déjà résolus (sur de très long script), après avoir fait un "épluchage" de code paquet par paquet, j'ai identifié 4 lignes dont le contenu bloque la mise en ligne sur ebay.
(j'ai bien vérifié que c'était vraiment les seuls et donc le dernier problème)
Voici les lignes en questions :

Code Javascript :
jQuery.globalEval(elem.text||elem.textContent||elem.innerHTML||"");if(elem.parentNode)


[2]];if(typeof fn=="string")fn=eval("false||function(a,i){return "+fn+";}")


ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();xml.open(s.type,s.url,s.async,s.username,s.password);try{if(s.data)xml.setRequestHeader("Content-

Type",s.contentType)


throw"parsererror";if(type=="script")jQuery.globalEval(data);if(type=="json")data=eval("("+data+")");return data;},param:function(a){var s=[]


Si besoin, je peux vous communiquer ce qui précède ces lignes.

Merci à vous,

Cordialement.
samedi 20 février 2010 à 16:21:55 | Re : javascript partiellement refusé pour une page d'une boutique (professionnelles) sur ebay

PetoleTeam

Membre Club
...le container du carrousel est plus large et décalé et le...
je ne suis pas plus surpris que cela vu l'usine à gaz qui doit reformater pas mal de chose et ce au vue des fonctions
.replace(/-([a-z])/ig,function(all,letter){ return letter.toUpperCase();})
et
.replace(/([A-Z])/g,"-$1").toLowerCase();
quant à la deuxième partie difficile de dire ce qui fait planter le script par Ebay
;O)
samedi 20 février 2010 à 19:13:50 | Re : javascript partiellement refusé pour une page d'une boutique (professionnelles) sur ebay

Log40

Bonsoir,

j'ai repris le code en appliquant ce que vous m'avez suggéré de faire de meilleur façon que ce que j'avais fait, à savoir remplacer tout par split('\\').join('') et le résultat est parfait et permet d'identifier que seul les lignes

Code Javascript :
replace(/([A-Z])/g,"-$1").toLowerCase()

replace(/(<(\w+)[^>]*?)\/>/g,function(all,front,tag){return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?all:front+"></"+tag+">";});


restent un problème. En effet, je ne parviens pas à appliquer ce que vous m'avez suggéré et leurs modifications entrainent les problèmes "d'affichage" décrits précédemment.

Qu'auriez-vous comme code pour remplacer ces 2 lignes?

Merci à vous,

Cordialement.
dimanche 21 février 2010 à 16:17:09 | Re : javascript partiellement refusé pour une page d'une boutique (professionnelles) sur ebay

PetoleTeam

Membre Club
Bonjour,
.replace(/([A-Z])/g,"-$1").toLowerCase() comme je te l'ai signalé plus haut permet de convertir une chaine de style JS en un chaine de style CSS, c'est l'inverse de la commande .replace(/-([a-z])/ig,function(all,letter){ return letter.toUpperCase();}); qui elle permet de convertir une chaine de style CSS en chaine de style JS.
c'est 2 fonctions peuvent être remplacées par le code suivante
Code Javascript :
//----------------------------------------------------------------------------
// .replace(/-([a-z])/ig,function(all,letter){ return letter.toUpperCase();}); 
// convertie une chaine CSS en chaine JS
// ex : border-bottom-color -> borderBottomColor
//----------------------------------------------------------------------------
var szTmp = "border-bottom-color";
//-- recup sous forme de tableau
szTmp = szTmp.split('-');
//-- longueur du tableau
var iMax = szTmp.length;
//-- mise en MAJUSCULE de la 1st lettre sauf 1st index
for( var i = 1; i < iMax; i++){
  szTmp[i] = szTmp[i].charAt(0).toUpperCase() +szTmp[i].substr(1);
}
//-- reconstitution de la chaine au format JS
szTmp = szTmp.join('');

pour l'une et...
Code Javascript :
//----------------------------------------------
// .replace(/([A-Z])/g,"-$1").toLowerCase(); 
// convertie une chaine JS en chaine CSS
// ex : borderBottomColor -> border-bottom-color
//----------------------------------------------
var szTmp = "borderBottomColor";
var szNew = szTmp;
//-- caractere de test
var szMin = "@";
var szMax = 'a';
//-- longeur chaine
var iMax  = szTmp.length;
for( var i = 0; i < iMax; i++){
  //-- si caractere MAJUSCULE
  if(( szTmp.charAt(i) < szMax) && ( szTmp.charAt(i) > szMin)){
    //-- ajout - et mise en minuscule de la lettre
    szTmp = szTmp.substring(0 , i) +'-' + szTmp.charAt(i).toLowerCase() + szTmp.substring( i+1, iMax);
    //-- nouvelle longueur de la chaine
    iMax  = szTmp.length;
  }
}

pour l'autre...
et alors la fameuse...
Code Javascript :
.replace(/(<(\w+)[^>]*?)\/>/g, function (all, front, tag) {
            return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i) ? all : front + "></" + tag + ">";
          });
quant à elle s'assure de la conformité au langage HTML en supprimant le slash avant la fin de la balise et en ajoutant la balise de fermeture, cela ne concernant pas les balise reprise dans le test tag.match...
exemple :
si en entrée on a
<option value="test"/>
en sortie on obtient
<option value="test"></option>

Conclusion si ton document est VALIDE tu dois pouvoir la mettre en commentaire...ou tu peux toujours développer la fonction réalisant la même chose...

PS : au fait qu'en disent les intervenants sur RegEx
;O)
dimanche 21 février 2010 à 21:37:30 | Re : javascript partiellement refusé pour une page d'une boutique (professionnelles) sur ebay

Log40

Bonsoir,

merci pour votre aide.

Concernant cette ligne :
Code Javascript :
.replace(/-([a-z])/ig,function(all,letter){ return letter.toUpperCase();});
je l'ai supprimé hier (sans dommage)

Concernant le reste, je veux bien essayer mais je vous rappelle que je n'ai pas de connaissances en javascript.

Pour par exemple :
Code Javascript :
.replace(/([A-Z])/g,"-$1").toLowerCase()
qui est d'ailleurs précédé de :
Code Javascript :
name=name.
je le remplace par
Code Javascript :
function replace1(szTmp)
puis j'appelle cette fonction dans
Code Javascript :
<script type="text/javascript">
		$(function() {


en écrivant avec votre code en dessous?
Code Javascript :
 $(replace1).ready(function(){ 


Concernant l'autre ligne
Code Javascript :
.replace(/(<(\w+)[^>]*?)\/>/g, function (all, front, tag) {
            return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i) ? all : front + "></" + tag + ">";
          });

quel code pourrait la remplacer?

Merci à vous,

Cordialement



Cette discussion est classée dans : problème, javascript, page, scripts, ebay


Répondre à ce message

Sujets en rapport avec ce message

JavaScript: appel du fichier externet (.js) - Help!! [ par Henri9009 ] Bonjour à tous. Je ne comprends pas comment je peux avoir un problème avec une manipulation si simple. Je vais devenir fou!!! Ça fait un petit problème en javascript ou HTML..... [ par lemuge ] bonjour,Comme vous allez le voir au travers de mes questions je suis novice, mais il faut bien commencer un jour.....Voilà mon premier problème :J'ai Problème entre javascript et php [ par kcin ] Salut à tous... Je vais essayer de faire clair !!! ^^Voilà, j'ai deux select liés, en choisissant une valeur dans le premier, le deuxième se remplit. Problème chargement image javascript [ par Travailleuuse06 ] Bonjour,je suis devant un très gros problème que je n'arrive pas à résoudre. J'ai une page html où j'ai un Dans ma partie javascript, j'ai document. Textarea et Javascript [ par Slyders ] Voila j'ai un petit problème de mise en page Je suis entrain de faire un formulaire en PHP pour uniformisé les Télécopies ou je travail, les télécopie Problème avec XMLHTTPRequest [ par zlitus ] Bonjours Je développe actuellement un site qui utilise énormément les XMLHTTPRequest et je suis confronté a un problème : Lors-que je fait appel à un PB avec plusieur scripts dans la même page [ par 666Alucard666 ] Bonjour,voila mon problème:j'ai un script pour ouvrir un popup qui affiche le resultat d'une requete sql et un script qui permet de faire un update de iframe [ par benoitmtl ] Bonjour, Voici mon problème. J'ai une page sur mon site A qui contient un petit code JavaScript. Sur mon site B (pas sur le même serveur Problème de sous menu déroulant javascript [ par djood ] Bonjour à tous, c'est mon premier post et je suis débutant en javascript. je vous expose mon problème; j'ai installé un menu vertical qui contient des


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,796 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales