Accueil > Forum > > > > javascript partiellement refusé pour une page d'une boutique (professionnelles) sur ebay
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
|
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
|
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
|
...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
|
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 : je le remplace par Code Javascript : 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
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|