IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

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


Sujet :

JavaScript

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 8
    Points : 1
    Points
    1
    Par défaut javascript partiellement refusé pour une page d'une boutique (professionnelle) sur ebay
    Bonjour,

    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éantire 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.

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 646
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 646
    Points : 66 685
    Points
    66 685
    Billets dans le blog
    1
    Par défaut
    faut pas préciser la base pour parseInt ?
    ou alors le style css n'est pas definit par defaut et il faut alors recupérer les computedStyle ?

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    J'ai avancé et identifié la source du problème. Par contre, je ne peux pas l'interpréter car je n'ai pas de connaissance en javascript.

    J'ai réussi à passer le courrousel. Il ne me reste plus que le jquerry.
    Le problème vient des fonctions "replace". Lorsque je suprime ce terme dans le code, la page passe. Le problème est que dans le jquerry, lorsque je modifie quelques chose, le plugins ne marche plus...

    Exemple, en tout début, si je supprime simplement "/" dans "([I.replace(/" la page passe. Par contre, ça anéantit le plugin.
    La ligne suivante est replace(/^\s*/,"")]) etc etc.
    Qui plus ai le code est assez costeau.

    Je m'en remets à vous car sur ce point je n'ai pas de connaissance de développeur pour trouver l'alternative. En tout cas, point positive, tout ne semble pas bouché.

    Merci à vous.

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    En fait il s'agit des "(" qui bloque et non "/" après "replace".

    Comprenez-vous pourquoi?

    Par ailleurs, serait-il possible de modifier "(" après le "replace" dans le code javascrit jquerry sans ce que cela affecte sont fonctionnement?

    Cordialement

  5. #5
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 937
    Points
    22 937
    Billets dans le blog
    125
    Par défaut
    Bonsoir.

    La fonction replace() est inutile, parseInt() ne traite que la partie numérique.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    parseInt(l.css("padding-top"))

  6. #6
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    merci pour votre réponse.

    Comment alors supprimer cette fonction dans le code javascript sans que ça anéantisse son fonctionnement?

    Je vous soumets quelques parties de code où se trouve cette fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    .clean([I.replace(/ 
    jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this
     
    .replace(/\r/g,"")}return g}if(typeof K==="number")
     
    .replace(/([A-Z])/g,"-$1")
    etc etc, mais il y en a un paquet. Ce qui est consolant c'est que le problème ne se situe plus qu'avec cette fonction.

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    J'ai réussi à remplacer certaine fonctions "replace" par le code que vous m'avez donné.

    Toutefois, je ne parviens pas pour toutes. J'essaye de copier le code avant chaque .,ou;+ou()... mais c'est sans résultat pour les parties de code suivantes :
    (je vous communique de "gros paquets", sait-on jamais, la partie à remplacer est peut-être longue)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    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[i])){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;

    Merci à vous,

    Cordialement.

  8. #8
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 937
    Points
    22 937
    Billets dans le blog
    125
    Par défaut
    Bonsoir.

    Je parlais uniquement de ce cas :

    Citation Envoyé par danielhagnoul Voir le message
    La fonction replace() est inutile, parseInt() ne traite que la partie numérique.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    parseInt(l.css("padding-top"))

  9. #9
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    pour le reste alors, comment procéder?

    Etant dans le cadre professionnel, ceci est assez important.

    Cordialement.

  10. #10
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Le problème, c'est qu'à la suite de certaines attaques (en particulier le ver Sassy sur myspace), le contenu du JavaScript ajouté à une page de type e-bay semble filtré de façon assez draconienne. Donc s'ils n'ont pas prévu la possibilité d'intégrer des frameworks comme jQuery, tu ne risque pas de pouvoir contourner cette restriction.

  11. #11
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    le problème des fonctions replace a été résolu en les remplaçant par split('\\').join('').
    Le plugin n'est pas atteint et la page passe, ceci dit, ces changements ont eu pour effet de créer un trouble visiblement 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é?

    edit : voir message ci dessous

    Merci à vous,

    Cordialement.

  12. #12
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Bonsoir,

    dans cette même problématique. Suite au remplacement des fonctions replace. Afin de ne pas causer les problèmes "d'affichage" exposés plus haut, que proposerez-vous comme codes pour remplacer ces 2 lignes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    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+">";});
    En effet, ces lignes restent le seul problème et celles qui une fois modifiées par split('\\').join('') (non adapté à ces lignes) causent les problèmes "d'affichage".

    Merci à vous,

    Cordialement.

Discussions similaires

  1. Réponses: 6
    Dernier message: 12/04/2006, 17h46
  2. [debutant]passager une variable d'une page a une autre
    Par Eisy dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 17/03/2006, 12h18
  3. [XHTML] [débutant] Ouvrir une page dans une page xhtml
    Par wikers dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 14/02/2006, 17h20
  4. faire passer une variable d'une fct js à une page php
    Par harlock59 dans le forum Langage
    Réponses: 1
    Dernier message: 25/11/2005, 15h41
  5. Garder une dataset d'une page a une autre
    Par amika dans le forum Langage
    Réponses: 13
    Dernier message: 16/11/2005, 00h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo